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..ea28149289d3 100644 --- a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts @@ -4,381 +4,401 @@ 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: { + 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: { + 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: { + 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: { + 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 +408,801 @@ 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: { + 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: { + 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: { + 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: { + 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 +1212,801 @@ 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: { + 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: { + 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: { + 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: { + 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 +2016,1015 @@ 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: { + 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: { + 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: { + 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: { + 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 +3034,3470 @@ 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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 +6507,341 @@ 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, + 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 +6851,2451 @@ 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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: { + 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/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..29f9d94e2f98 --- /dev/null +++ b/packages/driver/cypress/e2e/util/mocha_custom_methods.cy.js @@ -0,0 +1,294 @@ +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) + } + + describe('strategy w/ experimentalBurnIn=false', () => { + 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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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..ddc6c128a52c 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, a 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/mocha.ts b/packages/driver/src/cypress/mocha.ts index e525d607da43..e586dc514391 100644 --- a/packages/driver/src/cypress/mocha.ts +++ b/packages/driver/src/cypress/mocha.ts @@ -37,6 +37,108 @@ 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 Options = T extends 'detect-flake-and-pass-on-threshold' ? + { + maxRetries: number + passesRequired: number + } : + T extends 'detect-flake-but-always-fail' ? { + maxRetries: number + stopIfAnyPassed: boolean + } : + undefined + +// NOTE: 'calculateTestStatus' is marked as an individual function to make functionality easier to test. +export function calculateTestStatus (test: CypressTest, strategy: Strategy, options: Options) { + // @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 = strategy !== 'detect-flake-but-always-fail' ? + ((options as Options<'detect-flake-and-pass-on-threshold'> | undefined)?.passesRequired || 1) : + null + + const neededPassingAttemptsLeft = 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 = strategy === 'detect-flake-but-always-fail' ? + ((options as Options<'detect-flake-but-always-fail'>).stopIfAnyPassed || false) : + null + + // Do we have the required amount of passes? If yes, we no longer need to keep running the test. + if (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. + (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. + (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, + 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 +323,10 @@ const restoreTestClone = () => { Test.prototype.clone = testClone } +const removeCalculateTestStatus = () => { + delete Test.prototype.calculateTestStatus +} + const restoreRunnerRunTests = () => { Runner.prototype.runTests = runnerRunTests } @@ -326,11 +432,25 @@ function patchTestClone () { ret._testConfig = this._testConfig ret.id = this.id ret.order = this.order + ret._currentRetry = this._currentRetry return ret } } +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 () { + let retriesConfig = Cypress.config('retries') + + // @ts-expect-error + return calculateTestStatus(this, retriesConfig?.experimentalStrategy, retriesConfig?.experimentalOptions) + } +} + function patchRunnerRunTests () { Runner.prototype.runTests = function () { const suite = arguments[0] @@ -495,6 +615,7 @@ const restore = () => { restoreHookRetries() restoreRunnerRunTests() restoreTestClone() + removeCalculateTestStatus() restoreSuiteAddTest() restoreSuiteAddSuite() restoreSuiteHooks() @@ -509,6 +630,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 1b70f8bf3175..19a4d6582054 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 @@ -1353,9 +1394,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' @@ -1363,8 +1402,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 () { @@ -1374,10 +1467,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) { @@ -1414,7 +1518,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 @@ -1641,7 +1751,7 @@ export default { delete runnable.err } - err = maybeHandleRetry(runnable, err) + err = maybeHandleRetryOnFailure(runnable, err) return runnableAfterRunAsync(runnable, Cypress) .then(() => { 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/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 f9ac70da24e9..c8d879b27f3b 100644 --- a/packages/server/lib/project-base.ts +++ b/packages/server/lib/project-base.ts @@ -360,7 +360,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/system-tests/__snapshots__/experimental_retries.spec.ts.js b/system-tests/__snapshots__/experimental_retries.spec.ts.js new file mode 100644 index 000000000000..16087f1740e7 --- /dev/null +++ b/system-tests/__snapshots__/experimental_retries.spec.ts.js @@ -0,0 +1,2302 @@ +exports['e2e retries.experimentalStrategy / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 / experimentalBurnIn=false / "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 cbe6f42508f0..6836bee3b7e4 100644 --- a/system-tests/__snapshots__/protocol_spec.js +++ b/system-tests/__snapshots__/protocol_spec.js @@ -610,6 +610,11 @@ exports['e2e events'] = ` "preAfterTest": [ { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -681,6 +686,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -763,6 +773,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -845,6 +860,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -927,6 +947,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1009,6 +1034,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1091,6 +1121,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1173,6 +1208,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1255,6 +1295,11 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1338,6 +1383,11 @@ exports['e2e events'] = ` ], "afterTest": [ { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1405,6 +1455,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1483,6 +1538,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1561,6 +1621,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1639,6 +1704,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1717,6 +1787,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1795,6 +1870,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1873,6 +1953,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1951,6 +2036,11 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { 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.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/test/experimental_retries.spec.ts b/system-tests/test/experimental_retries.spec.ts new file mode 100644 index 000000000000..d4291fdd46f4 --- /dev/null +++ b/system-tests/test/experimental_retries.spec.ts @@ -0,0 +1,325 @@ +import systemTests from '../lib/system-tests' + +describe('e2e retries.experimentalStrategy', () => { + systemTests.setup() + + describe('experimentalBurnIn=false', () => { + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + 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: { + experimentalBurnIn: false, + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: true, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) + }) +})