diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml
index f78ea29459e6..ddccc7091b80 100644
--- a/.circleci/workflows.yml
+++ b/.circleci/workflows.yml
@@ -28,7 +28,7 @@ mainBuildFilters: &mainBuildFilters
only:
- develop
- /^release\/\d+\.\d+\.\d+$/
- - 'matth/fix/electron-video-performance'
+ - 'feature/create-from-react-component'
# usually we don't build Mac app - it takes a long time
# but sometimes we want to really confirm we are doing the right thing
@@ -37,7 +37,7 @@ macWorkflowFilters: &darwin-workflow-filters
when:
or:
- equal: [ develop, << pipeline.git.branch >> ]
- - equal: [ 'matth/fix/electron-video-performance', << pipeline.git.branch >> ]
+ - equal: [ 'feature/create-from-react-component', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
@@ -45,7 +45,7 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
when:
or:
- equal: [ develop, << pipeline.git.branch >> ]
- - equal: [ 'matth/fix/electron-video-performance', << pipeline.git.branch >> ]
+ - equal: [ 'feature/create-from-react-component', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
@@ -63,7 +63,7 @@ windowsWorkflowFilters: &windows-workflow-filters
when:
or:
- equal: [ develop, << pipeline.git.branch >> ]
- - equal: [ 'matth/fix/electron-video-performance', << pipeline.git.branch >> ]
+ - equal: [ 'feature/create-from-react-component', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
@@ -129,7 +129,7 @@ commands:
- run:
name: Check current branch to persist artifacts
command: |
- if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "matth/fix/electron-video-performance" ]]; then
+ if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "feature/create-from-react-component" ]]; then
echo "Not uploading artifacts or posting install comment for this branch."
circleci-agent step halt
fi
diff --git a/npm/webpack-dev-server/cypress/e2e/react.cy.ts b/npm/webpack-dev-server/cypress/e2e/react.cy.ts
index 310d8bfe66fc..d3def96214ca 100644
--- a/npm/webpack-dev-server/cypress/e2e/react.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/react.cy.ts
@@ -129,6 +129,8 @@ for (const project of WEBPACK_REACT) {
// 4. recreate spec, with same name as removed spec
cy.findByTestId('new-spec-button').click()
+ cy.findByRole('button', { name: 'Create new empty spec' }).should('be.visible').click()
+
cy.findByRole('dialog').within(() => {
cy.get('input').clear().type('src/App.cy.jsx')
cy.contains('button', 'Create spec').click()
diff --git a/npm/webpack-preprocessor/__snapshots__/compilation.spec.js b/npm/webpack-preprocessor/__snapshots__/compilation.spec.js
index 20c347c230c1..9d8868f8b77c 100644
--- a/npm/webpack-preprocessor/__snapshots__/compilation.spec.js
+++ b/npm/webpack-preprocessor/__snapshots__/compilation.spec.js
@@ -1,6 +1,6 @@
exports['webpack preprocessor - e2e correctly preprocesses the file 1'] = `
it("is a test",(function(){expect(1).to.equal(1),expect(2).to.equal(2),expect(Math.min.apply(Math,[3,4])).to.equal(3)}));
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZV9zcGVjX291dHB1dC5qcyIsIm1hcHBpbmdzIjoiQUFBQUEsR0FBRyxhQUFhLFdBR2RDLE9BRmdCLEdBRU5DLEdBQUdDLE1BQU0sR0FDbkJGLE9BSG1CLEdBR1RDLEdBQUdDLE1BQU0sR0FDbkJGLE9BQU9HLEtBQUtDLElBQUwsTUFBQUQsS0FBWSxDQUFDLEVBQUcsS0FBS0YsR0FBR0MsTUFBTSIsInNvdXJjZXMiOlsid2VicGFjazovL0BjeXByZXNzL3dlYnBhY2stcHJlcHJvY2Vzc29yLy4vdGVzdC9fdGVzdC1vdXRwdXQvZXhhbXBsZV9zcGVjLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIml0KCdpcyBhIHRlc3QnLCAoKSA9PiB7XG4gIGNvbnN0IFthLCBiXSA9IFsxLCAyXVxuXG4gIGV4cGVjdChhKS50by5lcXVhbCgxKVxuICBleHBlY3QoYikudG8uZXF1YWwoMilcbiAgZXhwZWN0KE1hdGgubWluKC4uLlszLCA0XSkpLnRvLmVxdWFsKDMpXG59KVxuIl0sIm5hbWVzIjpbIml0IiwiZXhwZWN0IiwidG8iLCJlcXVhbCIsIk1hdGgiLCJtaW4iXSwic291cmNlUm9vdCI6IiJ9
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZV9zcGVjX291dHB1dC5qcyIsIm1hcHBpbmdzIjoiQUFBQUEsR0FBRyxhQUFhLFdBR2RDLE9BRmdCLEdBRU5DLEdBQUdDLE1BQU0sR0FDbkJGLE9BSG1CLEdBR1RDLEdBQUdDLE1BQU0sR0FDbkJGLE9BQU9HLEtBQUtDLElBQUcsTUFBUkQsS0FBWSxDQUFDLEVBQUcsS0FBS0YsR0FBR0MsTUFBTSIsInNvdXJjZXMiOlsid2VicGFjazovL0BjeXByZXNzL3dlYnBhY2stcHJlcHJvY2Vzc29yLy4vdGVzdC9fdGVzdC1vdXRwdXQvZXhhbXBsZV9zcGVjLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIml0KCdpcyBhIHRlc3QnLCAoKSA9PiB7XG4gIGNvbnN0IFthLCBiXSA9IFsxLCAyXVxuXG4gIGV4cGVjdChhKS50by5lcXVhbCgxKVxuICBleHBlY3QoYikudG8uZXF1YWwoMilcbiAgZXhwZWN0KE1hdGgubWluKC4uLlszLCA0XSkpLnRvLmVxdWFsKDMpXG59KVxuIl0sIm5hbWVzIjpbIml0IiwiZXhwZWN0IiwidG8iLCJlcXVhbCIsIk1hdGgiLCJtaW4iXSwic291cmNlUm9vdCI6IiJ9
`
exports['webpack preprocessor - e2e has less verbose syntax error 1'] = `
diff --git a/npm/webpack-preprocessor/test/unit/cross-origin-callback-loader.spec.ts b/npm/webpack-preprocessor/test/unit/cross-origin-callback-loader.spec.ts
index 0e390956bc5f..06a334b48223 100644
--- a/npm/webpack-preprocessor/test/unit/cross-origin-callback-loader.spec.ts
+++ b/npm/webpack-preprocessor/test/unit/cross-origin-callback-loader.spec.ts
@@ -220,7 +220,6 @@ describe('./lib/cross-origin-callback-loader', () => {
expectAddFileSource(store).to.equal(stripIndent`
__cypressCrossOriginCallback = () => {
const utils = require('../support/utils');
-
utils.foo();
}`)
})
@@ -230,9 +229,7 @@ describe('./lib/cross-origin-callback-loader', () => {
`it('test', () => {
cy.origin('http://www.foobar.com:3500', () => {
require('../support/commands')
-
const utils = require('../support/utils')
-
const _ = require('lodash')
})
})`,
@@ -241,9 +238,7 @@ describe('./lib/cross-origin-callback-loader', () => {
expectAddFileSource(store).to.equal(stripIndent`
__cypressCrossOriginCallback = () => {
require('../support/commands');
-
const utils = require('../support/utils');
-
const _ = require('lodash');
}`)
})
@@ -270,9 +265,7 @@ describe('./lib/cross-origin-callback-loader', () => {
`it('test', () => {
cy.origin('http://www.foobar.com:3500', () => {
const someVar = 'someValue'
-
const result = require('./fn')(someVar)
-
expect(result).to.equal('mutated someVar')
})
})`,
@@ -281,9 +274,7 @@ describe('./lib/cross-origin-callback-loader', () => {
expectAddFileSource(store).to.equal(stripIndent`
__cypressCrossOriginCallback = () => {
const someVar = 'someValue';
-
const result = require('./fn')(someVar);
-
expect(result).to.equal('mutated someVar');
}`)
})
@@ -293,7 +284,6 @@ describe('./lib/cross-origin-callback-loader', () => {
`it('test', () => {
cy.origin('http://www.foobar.com:3500', { args: { foo: 'foo'}}, ({ foo }) => {
const result = require('./fn')(foo)
-
expect(result).to.equal('mutated someVar')
})
})`,
@@ -304,7 +294,6 @@ describe('./lib/cross-origin-callback-loader', () => {
foo
}) => {
const result = require('./fn')(foo);
-
expect(result).to.equal('mutated someVar');
}`)
})
diff --git a/packages/app/cypress/e2e/create-from-component.cy.ts b/packages/app/cypress/e2e/create-from-component.cy.ts
index 5771917cb9b3..162508b36a9b 100644
--- a/packages/app/cypress/e2e/create-from-component.cy.ts
+++ b/packages/app/cypress/e2e/create-from-component.cy.ts
@@ -1,10 +1,10 @@
import defaultMessages from '@packages/frontend-shared/src/locales/en-US.json'
import { getPathForPlatform } from '../../src/paths'
-function validateCreateFromComponentCard (beforeEachFn: () => void, expectedSpecPath: string) {
+function validateCreateFromVueComponentCard (beforeEachFn: () => void, expectedSpecPath: string) {
beforeEach(beforeEachFn)
- it('Shows create from component card for Vue projects with default spec patterns', () => {
+ it('Shows create from component card for Vue projects', () => {
cy.get('@ComponentCard')
.within(() => {
cy.findByRole('button', {
@@ -82,31 +82,175 @@ function validateCreateFromComponentCard (beforeEachFn: () => void, expectedSpec
.should('have.attr', 'href', `#/specs/runner?file=${expectedSpecPath}`).click()
})
- cy.findByText(' ', { timeout: 10000 }).should('be.visible')
+ cy.waitForSpecToFinish({ passCount: 1 })
+ })
+}
+
+function validateCreateFromReactComponentCard (beforeEachFn: () => void, expectedSpecPath: string) {
+ beforeEach(beforeEachFn)
+
+ it('Shows create from component card for React projects', () => {
+ cy.get('@ComponentCard')
+ .within(() => {
+ cy.findByRole('button', {
+ name: 'Create from component',
+ }).should('be.visible')
+ .and('not.be.disabled')
+ })
+ })
+
+ it('Can be closed with the x button', () => {
+ cy.get('@ComponentCard').click()
+
+ cy.findByRole('button', { name: 'Close' }).as('DialogCloseButton')
+
+ cy.get('@DialogCloseButton').click()
+ cy.findByRole('dialog', {
+ name: 'Choose a component',
+ }).should('not.exist')
+ })
+
+ it('Lists files in the project', () => {
+ cy.get('@ComponentCard').click()
+
+ cy.findByText('5 matches').should('be.visible')
+
+ cy.findByText('App').should('be.visible')
+ cy.findByText('index').should('be.visible')
+ })
+
+ it('Allows for the user to search through their components', () => {
+ cy.get('@ComponentCard').click()
+
+ cy.findByText('*.{js,jsx,tsx}').should('be.visible')
+ cy.findByText('5 matches').should('be.visible')
+ cy.findByLabelText('file-name-input').type('App')
+
+ cy.findByText('App').should('be.visible')
+ cy.findByText('1 of 5 matches').should('be.visible')
+ cy.findByText('index').should('not.exist')
+ cy.findByText('component').should('not.exist')
+ })
+
+ it('shows \'No components found\' if there are no exported components', () => {
+ cy.get('@ComponentCard').click()
+
+ cy.findByText('index').should('be.visible').click()
+
+ cy.findByTestId('react-component-row').should('not.exist')
+ cy.contains('No components found').should('be.visible')
+ })
+
+ it('shows \'Unable to parse file\' if there was an error parsing the file', () => {
+ cy.get('@ComponentCard').click()
+
+ // This component has a syntax error so we will fail to parse it
+ cy.findByText('Invalid').should('be.visible').click()
+
+ cy.findByTestId('react-component-row').should('not.exist')
+ cy.contains('Unable to parse file').should('be.visible')
+ })
+
+ it('shows success modal when component spec is created', () => {
+ cy.get('@ComponentCard').click()
+
+ // Expand the row
+ cy.findByText('App').should('be.visible').click()
+
+ // Click on 'app' component
+ cy.findByTestId('react-component-row').should('contain', 'App').click()
+
+ cy.findByRole('dialog', {
+ name: defaultMessages.createSpec.successPage.header,
+ }).as('SuccessDialog').within(() => {
+ cy.contains(getPathForPlatform(expectedSpecPath)).should('be.visible')
+ cy.findByRole('button', { name: 'Close' }).should('be.visible')
+
+ cy.findByRole('link', { name: 'Okay, run the spec' })
+ .should('have.attr', 'href', `#/specs/runner?file=${expectedSpecPath}`)
+
+ cy.findByRole('button', { name: 'Create another spec' }).click()
+ })
+
+ // 'Create from component' card appears again when the user selects "create another spec"
+ cy.findByText('Create from component').should('be.visible')
+ })
+
+ it('runs generated spec', () => {
+ cy.get('@ComponentCard').click()
+
+ // Expand the row
+ cy.findByText('App').should('be.visible').click()
+
+ // Click on 'app' component
+ cy.findByTestId('react-component-row').should('contain', 'App').click()
+
+ cy.findByRole('dialog', {
+ name: defaultMessages.createSpec.successPage.header,
+ }).as('SuccessDialog').within(() => {
+ cy.contains(getPathForPlatform(expectedSpecPath)).should('be.visible')
+ cy.findByRole('button', { name: 'Close' }).should('be.visible')
+
+ // There appears to be a race condition here where sometimes we try to run the spec
+ // before the file has been written to. Waiting here for 1 second resolves the issue.
+ cy.wait(2000)
+
+ cy.findByRole('link', { name: 'Okay, run the spec' })
+ .should('have.attr', 'href', `#/specs/runner?file=${expectedSpecPath}`).click()
+ })
+
+ cy.waitForSpecToFinish({ passCount: 1 })
})
}
describe('Create from component card', () => {
- context('project with default spec pattern', () => {
- validateCreateFromComponentCard(() => {
- cy.scaffoldProject('no-specs-vue-2')
- cy.openProject('no-specs-vue-2')
- cy.startAppServer('component')
- cy.visitApp()
-
- cy.findAllByTestId('card').eq(0).as('ComponentCard')
- }, 'src/components/HelloWorld.cy.js')
- })
-
- context('project with custom spec pattern', () => {
- validateCreateFromComponentCard(() => {
- cy.scaffoldProject('no-specs-vue-2')
- cy.openProject('no-specs-vue-2', ['--config-file', 'cypress-custom-spec-pattern.config.js'])
- cy.startAppServer('component')
- cy.visitApp()
-
- cy.findByText('New spec').click()
- cy.findAllByTestId('card').eq(0).as('ComponentCard')
- }, 'src/specs-folder/HelloWorld.cy.js')
+ context('Vue', () => {
+ context('project with default spec pattern', () => {
+ validateCreateFromVueComponentCard(() => {
+ cy.scaffoldProject('no-specs-vue-2')
+ cy.openProject('no-specs-vue-2')
+ cy.startAppServer('component')
+ cy.visitApp()
+
+ cy.findAllByTestId('card').eq(0).as('ComponentCard')
+ }, 'src/components/HelloWorld.cy.js')
+ })
+
+ context('project with custom spec pattern', () => {
+ validateCreateFromVueComponentCard(() => {
+ cy.scaffoldProject('no-specs-vue-2')
+ cy.openProject('no-specs-vue-2', ['--config-file', 'cypress-custom-spec-pattern.config.js'])
+ cy.startAppServer('component')
+ cy.visitApp()
+
+ cy.findByText('New spec').click()
+ cy.findAllByTestId('card').eq(0).as('ComponentCard')
+ }, 'src/specs-folder/HelloWorld.cy.js')
+ })
+ })
+
+ context('React', () => {
+ context('project with default spec pattern', () => {
+ validateCreateFromReactComponentCard(() => {
+ cy.scaffoldProject('no-specs')
+ cy.openProject('no-specs')
+ cy.startAppServer('component')
+ cy.visitApp()
+
+ cy.findAllByTestId('card').eq(0).as('ComponentCard')
+ }, 'src/App.cy.jsx')
+ })
+
+ context('project with custom spec pattern', () => {
+ validateCreateFromReactComponentCard(() => {
+ cy.scaffoldProject('no-specs')
+ cy.openProject('no-specs', ['--config-file', 'cypress-custom-spec-pattern.config.ts'])
+ cy.startAppServer('component')
+ cy.visitApp()
+
+ cy.findByText('New spec').click()
+ cy.findAllByTestId('card').eq(0).as('ComponentCard')
+ }, 'src/specs-folder/App.cy.jsx')
+ })
})
})
diff --git a/packages/app/cypress/e2e/specs.cy.ts b/packages/app/cypress/e2e/specs.cy.ts
index 4d1838408ba9..6fbcce550edc 100644
--- a/packages/app/cypress/e2e/specs.cy.ts
+++ b/packages/app/cypress/e2e/specs.cy.ts
@@ -524,6 +524,12 @@ describe('App: Specs', () => {
})
})
+ function selectEmptySpecCard () {
+ cy.findAllByTestId('card').should('have.length', 2)
+ cy.findByRole('button', { name: 'Create from component' }).should('be.visible')
+ cy.findByRole('button', { name: 'Create new empty spec' }).should('be.visible').click()
+ }
+
describe('Testing Type: Component', {
viewportHeight: 768,
viewportWidth: 1024,
@@ -535,7 +541,7 @@ describe('App: Specs', () => {
cy.startAppServer('component')
cy.visitApp()
- cy.findAllByTestId('card').eq(0).as('EmptyCard')
+ cy.findAllByTestId('card').eq(1).as('EmptyCard')
})
it('shows create new empty spec card', () => {
@@ -589,7 +595,9 @@ describe('App: Specs', () => {
// 'Create a new spec' dialog presents with options when user indicates they want to create
// another spec.
- cy.findByRole('dialog', { name: 'Enter the path for your new spec' }).should('be.visible')
+ cy.findAllByTestId('card').should('have.length', 2)
+ cy.findByRole('button', { name: 'Create new empty spec' }).should('be.visible')
+ cy.findByRole('button', { name: 'Create from component' }).should('be.visible')
})
it('navigates to spec runner when selected', () => {
@@ -628,7 +636,7 @@ describe('App: Specs', () => {
})
cy.contains('Review the docs')
- .should('have.attr', 'href', 'https://on.cypress.io/mount')
+ .should('have.attr', 'href', 'https://on.cypress.io/styling-components')
cy.log('should not contain the link if you navigate away and back')
cy.get('body').type('f')
@@ -709,13 +717,17 @@ describe('App: Specs', () => {
it('shows new spec button to start creation workflow', () => {
cy.findByRole('button', { name: 'New spec', exact: false }).click()
+ selectEmptySpecCard()
+
cy.findByRole('dialog', { name: 'Enter the path for your new spec' }).should('be.visible')
})
it('shows create first spec page with create empty option and goes back if it is cancel', () => {
cy.findByRole('button', { name: 'New spec', exact: false }).click()
- cy.contains('Cancel').click()
+ selectEmptySpecCard()
+
+ cy.contains('Back').click()
cy.findByRole('dialog', { name: 'Enter the path for your new spec' }).should('not.exist')
})
@@ -738,6 +750,8 @@ describe('App: Specs', () => {
cy.findByRole('button', { name: 'New spec' }).click()
+ selectEmptySpecCard()
+
cy.findByRole('dialog', {
name: 'Enter the path for your new spec',
}).within(() => {
diff --git a/packages/app/src/paths.ts b/packages/app/src/paths.ts
index d01d302b78b5..1c889ca8fbf1 100644
--- a/packages/app/src/paths.ts
+++ b/packages/app/src/paths.ts
@@ -18,3 +18,7 @@ export function getPathForPlatform (posixPath?: string) {
return posixPath
}
+
+export function posixify (path: string): string {
+ return path.replace(/\\/g, '/')
+}
diff --git a/packages/app/src/runner/SpecRunnerHeaderOpenMode.vue b/packages/app/src/runner/SpecRunnerHeaderOpenMode.vue
index af42d0e06746..80c458927f3d 100644
--- a/packages/app/src/runner/SpecRunnerHeaderOpenMode.vue
+++ b/packages/app/src/runner/SpecRunnerHeaderOpenMode.vue
@@ -153,8 +153,8 @@
dismissible
>
-
-
+
+
{{ t('runner.header.reviewDocs') }}
{{ t('runner.header.troubleRendering') }}
diff --git a/packages/app/src/specs/CreateSpecModal.cy.tsx b/packages/app/src/specs/CreateSpecModal.cy.tsx
index 4d094591881f..bc3d161b1709 100644
--- a/packages/app/src/specs/CreateSpecModal.cy.tsx
+++ b/packages/app/src/specs/CreateSpecModal.cy.tsx
@@ -6,45 +6,7 @@ const modalCloseSelector = '[aria-label=Close]'
const triggerButtonSelector = '[data-testid=trigger]'
const modalSelector = '[data-cy=create-spec-modal]'
-describe(' ', () => {
- beforeEach(() => {
- const show = ref(true)
-
- cy.mount(() => (
- show.value = false}
- />
-
))
- })
-
+function testEmptySpecModal (fullDefaultSpecFileName: string, specName: string) {
it('renders a modal', () => {
cy.get(modalSelector).should('be.visible')
@@ -69,6 +31,10 @@ describe(' ', () => {
})
describe('form behavior', () => {
+ beforeEach(() => {
+ cy.findByRole('button', { name: 'Create new empty spec' }).should('be.visible').click()
+ })
+
it('enter should call create spec function', () => {
//submit default path
cy.get('input')
@@ -99,103 +65,172 @@ describe(' ', () => {
cy.get('@submit').should('be.disabled')
})
})
-})
-
-describe('Modal Text Input', () => {
- it('focuses text input and selects file name by default', () => {
- const show = ref(true)
- cy.mount(() => (
- show.value = false}
- />
-
))
+ describe('text Input', () => {
+ beforeEach(() => {
+ cy.findByRole('button', { name: 'Create new empty spec' }).should('be.visible').click()
+ })
- cy.focused().as('specNameInput')
+ it('focuses text input and selects file name by default', () => {
+ cy.focused().as('specNameInput')
- // focused should yield the input element since it should be auto-focused
- cy.get('@specNameInput').invoke('val').should('equal', 'cypress/e2e/ComponentName.cy.js')
+ // focused should yield the input element since it should be auto-focused
+ cy.get('@specNameInput').invoke('val').should('equal', fullDefaultSpecFileName)
- // only the file name should be focused, so backspacing should erase the whole file name
- cy.get('@specNameInput').type('{backspace}')
+ // only the file name should be focused, so backspacing should erase the whole file name
+ cy.get('@specNameInput').type('{backspace}')
- cy.get('@specNameInput').invoke('val').should('equal', 'cypress/e2e/.cy.js')
+ cy.get('@specNameInput').invoke('val').should('equal', fullDefaultSpecFileName.replace(specName, ''))
+ })
})
+}
- it('focuses text input but does not select if default file name does not match regex', () => {
- const show = ref(true)
+describe(' ', () => {
+ context('create empty spec', () => {
+ context('e2e', () => {
+ const defaultSpecName = 'spec'
+ const defaultSpecFileName = 'cypress/e2e/spec.cy.js'
+
+ beforeEach(() => {
+ const show = ref(true)
+
+ cy.mount(() => (
+ show.value = false}
+ />
+
))
+ })
- cy.mount(() => (
-
{
+ const defaultSpecName = 'ComponentName'
+ const defaultSpecFileName = 'src/components/ComponentName.cy.jsx'
+
+ beforeEach(() => {
+ const show = ref(true)
+
+ cy.mount(() => (
+ show.value = false}
+ />
+
))
+ })
+
+ testEmptySpecModal(defaultSpecFileName, defaultSpecName)
+ })
+ })
+
+ context('general', () => {
+ it('focuses text input but does not select if default file name does not match regex', () => {
+ const show = ref(true)
+
+ cy.mount(() => (
+ show.value = false}
- />
-
))
+ codeGenFramework: 'vue',
+ currentTestingType: 'component',
+ configFile: 'cypress.config.js',
+ configFileAbsolutePath: '/path/to/cypress.config.js',
+ config: [{
+ field: 'e2e',
+ value: {
+ specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}',
+ },
+ }, {
+ field: 'component',
+ value: {
+ specPattern: '**/*.cy.{js,jsx,ts,tsx}',
+ },
+ }],
+ specs: [],
+ fileExtensionToUse: 'js',
+ defaultSpecFileName: 'this/path/does/not/produce/regex/match-',
+ },
+ }}
+ show={show.value}
+ onClose={() => show.value = false}
+ />
+ ))
+
+ cy.findByRole('button', { name: 'Create new empty spec' }).should('be.visible').click()
- cy.focused().as('specNameInput')
+ cy.focused().as('specNameInput')
- // focused should yield the input element since it should be auto-focused
- cy.get('@specNameInput').invoke('val').should('equal', 'this/path/does/not/produce/regex/match-')
+ // focused should yield the input element since it should be auto-focused
+ cy.get('@specNameInput').invoke('val').should('equal', 'this/path/does/not/produce/regex/match-')
- // nothing should be selected, so backspacing should only delete the last character in the file path
- cy.get('@specNameInput').type('{backspace}')
+ // nothing should be selected, so backspacing should only delete the last character in the file path
+ cy.get('@specNameInput').type('{backspace}')
- cy.get('@specNameInput').invoke('val').should('equal', 'this/path/does/not/produce/regex/match')
+ cy.get('@specNameInput').invoke('val').should('equal', 'this/path/does/not/produce/regex/match')
+ })
})
})
@@ -215,6 +250,7 @@ describe('playground', () => {
__typename: 'CodeGenGlobs',
component: '**.vue',
},
+ codeGenFramework: 'vue',
currentTestingType: 'component',
configFile: 'cypress.config.js',
configFileAbsolutePath: '/path/to/cypress.config.js',
diff --git a/packages/app/src/specs/CreateSpecModal.vue b/packages/app/src/specs/CreateSpecModal.vue
index 5517b49c3352..41cb9fda1b63 100644
--- a/packages/app/src/specs/CreateSpecModal.vue
+++ b/packages/app/src/specs/CreateSpecModal.vue
@@ -42,7 +42,7 @@
-
diff --git a/packages/app/src/specs/generators/ExpandableFileList.cy.tsx b/packages/app/src/specs/generators/ExpandableFileList.cy.tsx
new file mode 100644
index 000000000000..01c3435b9109
--- /dev/null
+++ b/packages/app/src/specs/generators/ExpandableFileList.cy.tsx
@@ -0,0 +1,84 @@
+import ExpandableFileList from './ExpandableFileList.vue'
+import data from '../../../cypress/fixtures/FileList.json'
+import { ref, Ref } from 'vue'
+import type { FileListItemFragment } from '../../generated/graphql-test'
+
+const difficultFile = {
+ baseName: '[...all].vue',
+ fileExtension: '.vue',
+}
+
+const noResultsSlot = () =>
No Results
+const noResultsSelector = '[data-testid=no-results]'
+const fileRowSelector = '[data-cy=file-list-row]'
+
+const allFiles = data as FileListItemFragment[]
+
+allFiles[1] = { ...allFiles[1], ...difficultFile }
+describe(' ', { viewportHeight: 500, viewportWidth: 400 }, () => {
+ describe('with files', () => {
+ const files = allFiles
+
+ beforeEach(() => {
+ const selectItemStub = cy.stub()
+
+ cy.mount(() => (
+
+
))
+ })
+
+ it('renders all of the files passed in', () => {
+ cy.get(fileRowSelector)
+ .should('have.length', 10)
+ })
+
+ it('expands rows when they are clicked', () => {
+ cy.mount(() => (
+ This is the expanded content
}}
+ files={files} />
+ ))
+
+ cy.contains('This is the expanded content').should('not.exist')
+
+ cy.get(fileRowSelector)
+ .first()
+ .click()
+
+ cy.contains('This is the expanded content').should('be.visible')
+ })
+
+ it('correctly formats a difficult file', () => {
+ cy.get('body').contains('[...all]')
+ cy.percySnapshot()
+ })
+ })
+
+ describe('without files', () => {
+ it('shows the no results slot', () => {
+ const files: Ref = ref([])
+ let idx = 0
+
+ cy.mount(() => (
+ {
+ files.value.push(allFiles[idx]); idx++
+ }}>
+ Add File
+
+
+
+
+
))
+ .get(noResultsSelector).should('be.visible')
+
+ cy.percySnapshot()
+
+ cy.get('[data-testid=add-file]')
+ .click()
+ .get(noResultsSelector).should('not.exist')
+ })
+ })
+})
diff --git a/packages/app/src/specs/generators/ExpandableFileList.vue b/packages/app/src/specs/generators/ExpandableFileList.vue
new file mode 100644
index 000000000000..44ef10f09f91
--- /dev/null
+++ b/packages/app/src/specs/generators/ExpandableFileList.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ name(file) }}
+ {{ file.fileExtension }}
+ {{ file.relative }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/app/src/specs/generators/FileChooser.cy.tsx b/packages/app/src/specs/generators/FileChooser.cy.tsx
index 98f36a501b28..7711eb6629eb 100644
--- a/packages/app/src/specs/generators/FileChooser.cy.tsx
+++ b/packages/app/src/specs/generators/FileChooser.cy.tsx
@@ -3,10 +3,11 @@ import FileChooser from './FileChooser.vue'
import { ref } from 'vue'
import { defaultMessages } from '@cy/i18n'
import data from '../../../cypress/fixtures/FileChooser.json'
+import type { FileParts } from '@packages/data-context/src/gen/graphcache-config.gen'
/*---------- Fixtures ----------*/
const numFiles = data.length
-const allFiles = data
+const allFiles = data as unknown as FileParts[]
const extensionPattern = '*.jsx'
const existentExtensionPattern = '*.tsx'
const nonExistentFileName = 'non existent file'
@@ -243,12 +244,16 @@ describe(' ', () => {
})
it('fires a selectFile event when a file is clicked on', () => {
- const onSelectFileSpy = cy.spy().as('onSelectFileSpy')
+ const onSelectFileStub = cy.stub()
cy.mount(() => (
))
+
+ cy.findAllByTestId('file-list-row').first().click().then(() => {
+ expect(onSelectFileStub).to.be.calledOnce
+ })
})
})
diff --git a/packages/app/src/specs/generators/FileChooser.vue b/packages/app/src/specs/generators/FileChooser.vue
index 7c250a5b1d39..ec3a55d812d6 100644
--- a/packages/app/src/specs/generators/FileChooser.vue
+++ b/packages/app/src/specs/generators/FileChooser.vue
@@ -73,9 +73,10 @@ import CreateSpecModalBody from './CreateSpecModalBody.vue'
import FileList from './FileList.vue'
import FileMatch from '../../components/FileMatch.vue'
import { gql } from '@urql/core'
+import type { FileParts } from '@packages/data-context/src/gen/graphcache-config.gen'
const props = withDefaults(defineProps<{
- files: any[]
+ files: FileParts[]
extensionPattern: string
loading?: boolean
}>(), {
@@ -148,9 +149,13 @@ const noResults = computed(() => {
return {
search: filePathSearch.value || debouncedExtensionPattern.value,
message: filePathSearch.value ? t('noResults.defaultMessage') : t('components.fileSearch.noMatchesForExtension'),
- clear: filePathSearch.value ?
- () => filePathSearch.value = '' :
- () => localExtensionPattern.value = initialExtensionPattern,
+ clear: () => {
+ if (filePathSearch.value) {
+ filePathSearch.value = ''
+ } else {
+ localExtensionPattern.value = initialExtensionPattern
+ }
+ },
}
})
diff --git a/packages/app/src/specs/generators/component/ComponentGenerator.tsx b/packages/app/src/specs/generators/component/ComponentGenerator.tsx
deleted file mode 100644
index 1937264008b9..000000000000
--- a/packages/app/src/specs/generators/component/ComponentGenerator.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { filters } from '../GeneratorsCommon'
-import ComponentGeneratorStepOne from './ComponentGeneratorStepOne.vue'
-import type { SpecGenerator } from '../types'
-import ComponentGeneratorCard from './ComponentGeneratorCard.vue'
-
-export const ComponentGenerator: SpecGenerator = {
- card: ComponentGeneratorCard,
- entry: ComponentGeneratorStepOne,
- show: (currentProject) => {
- return currentProject?.codeGenGlobs?.component === '*.vue'
- },
- matches: filters.matchesCT,
- id: 'component',
-}
diff --git a/packages/app/src/specs/generators/component/ReactComponentGenerator.tsx b/packages/app/src/specs/generators/component/ReactComponentGenerator.tsx
new file mode 100644
index 000000000000..37345ff7add4
--- /dev/null
+++ b/packages/app/src/specs/generators/component/ReactComponentGenerator.tsx
@@ -0,0 +1,12 @@
+import { filters } from '../GeneratorsCommon'
+import ReactComponentGeneratorStepOne from './ReactComponentGeneratorStepOne.vue'
+import type { SpecGenerator } from '../types'
+import ComponentGeneratorCard from './ComponentGeneratorCard.vue'
+
+export const ReactComponentGenerator: SpecGenerator = {
+ card: ComponentGeneratorCard,
+ entry: ReactComponentGeneratorStepOne,
+ show: (currentProject) => currentProject?.codeGenFramework === 'react',
+ matches: filters.matchesCT,
+ id: 'reactComponent',
+}
diff --git a/packages/app/src/specs/generators/component/ReactComponentGeneratorStepOne.vue b/packages/app/src/specs/generators/component/ReactComponentGeneratorStepOne.vue
new file mode 100644
index 000000000000..b14a9ab862be
--- /dev/null
+++ b/packages/app/src/specs/generators/component/ReactComponentGeneratorStepOne.vue
@@ -0,0 +1,188 @@
+
+
+
+ emits('update:title', value)"
+ />
+
+
+
+
+
+
+
+ {{ t('createSpec.successPage.runSpecButton') }}
+
+
+ {{ t('createSpec.successPage.createAnotherSpecButton') }}
+
+
+
+
+
+
+
+
diff --git a/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx b/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx
new file mode 100644
index 000000000000..5f3ad5b79ad3
--- /dev/null
+++ b/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx
@@ -0,0 +1,59 @@
+import { ComponentList_GetReactComponentsFromFileDocument } from '../../../generated/graphql-test'
+import ReactComponentList from './ReactComponentList.vue'
+
+describe('ReactComponentList', () => {
+ const mockFile = {
+ absolute: '/path/to/my/component',
+ id: 'fileId',
+ relative: '../path/to/my/component',
+ fileName: 'Component.js',
+ fileExtension: '.tsx', baseName: 'Component',
+ }
+
+ it('renders empty state if no components are returned', () => {
+ cy.stubMutationResolver(ComponentList_GetReactComponentsFromFileDocument, (defineResult) => {
+ return defineResult({ getReactComponentsFromFile: { components: [], errored: false } })
+ })
+
+ cy.mount( )
+
+ cy.contains('No components found').should('be.visible')
+
+ cy.percySnapshot()
+ })
+
+ it('renders error state if errored is true', () => {
+ cy.stubMutationResolver(ComponentList_GetReactComponentsFromFileDocument, (defineResult) => {
+ return defineResult({ getReactComponentsFromFile: { components: [], errored: true } })
+ })
+
+ cy.mount( )
+
+ cy.contains('Unable to parse file').should('be.visible')
+
+ cy.percySnapshot()
+ })
+
+ it('fetches and displays a list of components', () => {
+ cy.mount( )
+
+ cy.contains('FooBar').should('be.visible')
+ cy.contains('BarFoo').should('be.visible')
+ cy.contains('FooBarBaz').should('be.visible')
+
+ cy.percySnapshot()
+ })
+
+ it('calls selectItem on click', () => {
+ const onSelectItemStub = cy.stub()
+
+ cy.mount( )
+
+ cy.contains('FooBar').should('be.visible').click().then(() => {
+ expect(onSelectItemStub).to.be.calledOnceWith({ file: mockFile, item: { exportName: 'FooBar', isDefault: false } })
+ })
+
+ cy.contains('BarFoo').should('be.visible')
+ cy.contains('FooBarBaz').should('be.visible')
+ })
+})
diff --git a/packages/app/src/specs/generators/component/ReactComponentList.vue b/packages/app/src/specs/generators/component/ReactComponentList.vue
new file mode 100644
index 000000000000..217b9054c353
--- /dev/null
+++ b/packages/app/src/specs/generators/component/ReactComponentList.vue
@@ -0,0 +1,87 @@
+
+
+
+ {{ t('createSpec.unableToParseFile') }}
+
+
+ {{ t('createSpec.noComponentsFound') }}
+
+
+
+
+
+
+
+ {{ exportName }}
+
+
+
+
+
+
+
+
diff --git a/packages/app/src/specs/generators/component/VueComponentGenerator.tsx b/packages/app/src/specs/generators/component/VueComponentGenerator.tsx
new file mode 100644
index 000000000000..a56ee121fd84
--- /dev/null
+++ b/packages/app/src/specs/generators/component/VueComponentGenerator.tsx
@@ -0,0 +1,12 @@
+import { filters } from '../GeneratorsCommon'
+import VueComponentGeneratorStepOne from './VueComponentGeneratorStepOne.vue'
+import type { SpecGenerator } from '../types'
+import ComponentGeneratorCard from './ComponentGeneratorCard.vue'
+
+export const VueComponentGenerator: SpecGenerator = {
+ card: ComponentGeneratorCard,
+ entry: VueComponentGeneratorStepOne,
+ show: (currentProject) => currentProject?.codeGenFramework === 'vue',
+ matches: filters.matchesCT,
+ id: 'vueComponent',
+}
diff --git a/packages/app/src/specs/generators/component/ComponentGeneratorStepOne.vue b/packages/app/src/specs/generators/component/VueComponentGeneratorStepOne.vue
similarity index 79%
rename from packages/app/src/specs/generators/component/ComponentGeneratorStepOne.vue
rename to packages/app/src/specs/generators/component/VueComponentGeneratorStepOne.vue
index 84ea5f54e2c3..0ad6a91ccc17 100644
--- a/packages/app/src/specs/generators/component/ComponentGeneratorStepOne.vue
+++ b/packages/app/src/specs/generators/component/VueComponentGeneratorStepOne.vue
@@ -40,20 +40,15 @@
v-if="result"
class="flex gap-16px items-center"
>
-
-
- {{ t('createSpec.successPage.runSpecButton') }}
-
-
+ {{ t('createSpec.successPage.runSpecButton') }}
+
@@ -80,12 +75,14 @@ import GeneratorSuccess from '../GeneratorSuccess.vue'
import { computed, ref } from 'vue'
import { gql, useQuery, useMutation } from '@urql/vue'
import type { ComponentGeneratorStepOne_CodeGenGlobFragment, GeneratorSuccessFileFragment } from '../../../generated/graphql'
-import { ComponentGeneratorStepOneDocument, ComponentGeneratorStepOne_GenerateSpecDocument } from '../../../generated/graphql'
+import { VueComponentGeneratorStepOneDocument, VueComponentGeneratorStepOne_GenerateSpecDocument } from '../../../generated/graphql'
import StandardModalFooter from '@cy/components/StandardModalFooter.vue'
import Button from '@cy/components/Button.vue'
import PlusButtonIcon from '~icons/cy/add-large_x16.svg'
import TestResultsIcon from '~icons/cy/test-results_x24.svg'
import EmptyGenerator from '../EmptyGenerator.vue'
+import { posixify } from '../../../paths'
+
const props = defineProps<{
title: string
gql: ComponentGeneratorStepOne_CodeGenGlobFragment
@@ -100,18 +97,9 @@ const emits = defineEmits<{
const { title } = useVModels(props, emits)
title.value = t('createSpec.component.importFromComponent.chooseAComponentHeader')
-gql`
-fragment ComponentGeneratorStepOne_codeGenGlob on CurrentProject {
- id
- codeGenGlobs {
- id
- component
- }
-}
-`
gql`
-query ComponentGeneratorStepOne($glob: String!) {
+query VueComponentGeneratorStepOne($glob: String!) {
currentProject {
id
codeGenCandidates(glob: $glob) {
@@ -132,7 +120,7 @@ query ComponentGeneratorStepOne($glob: String!) {
`
gql`
-mutation ComponentGeneratorStepOne_generateSpec($codeGenCandidate: String!, $type: CodeGenType!) {
+mutation VueComponentGeneratorStepOne_generateSpec($codeGenCandidate: String!, $type: CodeGenType!) {
generateSpecFromSource(codeGenCandidate: $codeGenCandidate, type: $type) {
...GeneratorSuccess
currentProject {
@@ -147,13 +135,14 @@ mutation ComponentGeneratorStepOne_generateSpec($codeGenCandidate: String!, $typ
}
}`
-const mutation = useMutation(ComponentGeneratorStepOne_GenerateSpecDocument)
+const mutation = useMutation(VueComponentGeneratorStepOne_GenerateSpecDocument)
const extensionPattern = ref(props.gql.codeGenGlobs.component)
const query = useQuery({
- query: ComponentGeneratorStepOneDocument,
+ query: VueComponentGeneratorStepOneDocument,
// @ts-ignore
variables: { glob: extensionPattern },
+ requestPolicy: 'network-only',
})
const allFiles = computed((): any => {
if (query.data.value?.currentProject?.codeGenCandidates) {
@@ -188,8 +177,3 @@ const cancelSpecNameCreation = () => {
generatedSpecError.value = null
}
-
diff --git a/packages/app/src/specs/generators/component/index.ts b/packages/app/src/specs/generators/component/index.ts
index 996dd141ff56..61d626feaf3c 100644
--- a/packages/app/src/specs/generators/component/index.ts
+++ b/packages/app/src/specs/generators/component/index.ts
@@ -1 +1,3 @@
-export * from './ComponentGenerator'
+export * from './VueComponentGenerator'
+
+export * from './ReactComponentGenerator'
diff --git a/packages/app/src/specs/generators/index.ts b/packages/app/src/specs/generators/index.ts
index 6cf4061bc794..70958799def0 100644
--- a/packages/app/src/specs/generators/index.ts
+++ b/packages/app/src/specs/generators/index.ts
@@ -3,7 +3,7 @@ import { computed } from 'vue'
import type { SpecGenerator, GeneratorId } from './types'
import { ScaffoldGenerator } from './scaffold'
import { EmptyGenerator } from './empty'
-import { ComponentGenerator } from './component'
+import { VueComponentGenerator, ReactComponentGenerator } from './component'
export * from './types'
@@ -14,7 +14,8 @@ export * from './scaffold'
export * from './empty'
export const generatorList: SpecGenerator[] = [
- ComponentGenerator,
+ VueComponentGenerator,
+ ReactComponentGenerator,
ScaffoldGenerator,
EmptyGenerator,
]
diff --git a/packages/app/src/specs/generators/types.ts b/packages/app/src/specs/generators/types.ts
index e8e3978098b4..df1cc12b7925 100644
--- a/packages/app/src/specs/generators/types.ts
+++ b/packages/app/src/specs/generators/types.ts
@@ -1,7 +1,7 @@
import type { TestingType } from '@packages/types'
import type { Component } from 'vue'
-export type GeneratorId = 'component' | 'empty' | 'scaffold'
+export type GeneratorId = 'vueComponent' | 'reactComponent' | 'empty' | 'scaffold'
type CurrentProject = {
readonly __typename?: 'CurrentProject' | undefined
@@ -9,6 +9,7 @@ type CurrentProject = {
readonly codeGenGlobs?: {
readonly component: string
}
+ readonly codeGenFramework?: string
}
export interface SpecGenerator {
diff --git a/packages/config/test/__babel_fixtures__/adding-component/destructure-require-ts/output.ts b/packages/config/test/__babel_fixtures__/adding-component/destructure-require-ts/output.ts
index 83e287734df5..58ddebfff2b2 100644
--- a/packages/config/test/__babel_fixtures__/adding-component/destructure-require-ts/output.ts
+++ b/packages/config/test/__babel_fixtures__/adding-component/destructure-require-ts/output.ts
@@ -1,5 +1,4 @@
const { defineConfig: cypressDefineConfig } = require("cypress");
-
export default cypressDefineConfig({
component: {
devServer: {
diff --git a/packages/data-context/package.json b/packages/data-context/package.json
index 51bb4699488c..dff5467fdd56 100644
--- a/packages/data-context/package.json
+++ b/packages/data-context/package.json
@@ -22,6 +22,7 @@
"@urql/core": "2.4.4",
"@urql/exchange-execute": "1.1.0",
"@urql/exchange-graphcache": "4.3.6",
+ "ast-types": "^0.14.2",
"chokidar": "3.5.1",
"common-path-prefix": "3.0.0",
"cross-fetch": "^3.1.4",
@@ -46,6 +47,7 @@
"prettier": "2.5.1",
"randexp": "0.5.3",
"randomstring": "1.1.5",
+ "react-docgen": "6.0.0-alpha.3",
"semver": "7.3.2",
"simple-git": "3.4.0",
"stringify-object": "^3.0.0",
diff --git a/packages/data-context/src/DataActions.ts b/packages/data-context/src/DataActions.ts
index 9121cc18d614..cc040b979ffd 100644
--- a/packages/data-context/src/DataActions.ts
+++ b/packages/data-context/src/DataActions.ts
@@ -11,6 +11,7 @@ import {
DevActions,
AuthActions,
CohortsActions,
+ CodegenActions,
} from './actions'
import { ErrorActions } from './actions/ErrorActions'
import { EventCollectorActions } from './actions/EventCollectorActions'
@@ -89,4 +90,9 @@ export class DataActions {
get cohorts () {
return new CohortsActions(this.ctx)
}
+
+ @cached
+ get codegen () {
+ return new CodegenActions(this.ctx)
+ }
}
diff --git a/packages/data-context/src/actions/CodegenActions.ts b/packages/data-context/src/actions/CodegenActions.ts
new file mode 100644
index 000000000000..67abefb3c278
--- /dev/null
+++ b/packages/data-context/src/actions/CodegenActions.ts
@@ -0,0 +1,234 @@
+import type { NexusGenObjects, NexusGenUnions } from '@packages/graphql/src/gen/nxs.gen'
+import assert from 'assert'
+import path from 'path'
+import type { DataContext } from '..'
+import { SpecOptions, codeGenerator } from '../codegen'
+import templates from '../codegen/templates'
+import type { CodeGenType } from '../gen/graphcache-config.gen'
+import { WizardFrontendFramework, WIZARD_FRAMEWORKS } from '@packages/scaffold-config'
+import { parse as parseReactComponent, resolver as reactDocgenResolvers } from 'react-docgen'
+import { visit } from 'ast-types'
+
+export interface ReactComponentDescriptor {
+ exportName: string
+ isDefault: boolean
+}
+
+export class CodegenActions {
+ constructor (private ctx: DataContext) {}
+
+ async getReactComponentsFromFile (filePath: string): Promise<{components: ReactComponentDescriptor[], errored?: boolean }> {
+ try {
+ const src = await this.ctx.fs.readFile(filePath, 'utf8')
+
+ const exportResolver: ExportResolver = new Map()
+ let result = parseReactComponent(src, findAllWithLink(exportResolver), undefined, { parserOptions: { plugins: ['typescript', 'jsx'] } })
+
+ // types appear to be incorrect in react-docgen@6.0.0-alpha.3
+ // TODO: update when 6.0.0 stable is out for fixed types.
+ const defs = (Array.isArray(result) ? result : [result]) as { displayName: string }[]
+
+ const resolvedDefs = defs.reduce((acc, descriptor) => {
+ const displayName = descriptor.displayName || ''
+ const resolved = exportResolver.get(displayName)
+
+ // Limitation of resolving an export to a detected react component means we will filter out
+ // some valid components, but trying to generate them without knowing what the exportName is or
+ // if it is a default export will lead to bugs
+ if (resolved) {
+ acc.push(resolved)
+ }
+
+ return acc
+ }, [])
+
+ return { components: resolvedDefs }
+ } catch (err) {
+ this.ctx.debug(err)
+
+ // react-docgen throws an error if it doesn't find any components in a file.
+ // This is okay for our purposes, so if this is the error, catch it and return [].
+ if (err.message === 'No suitable component definition found.') {
+ return { components: [] }
+ }
+
+ return { errored: true, components: [] }
+ }
+ }
+
+ async codeGenSpec (codeGenCandidate: string, codeGenType: CodeGenType, componentName?: string, isDefault?: boolean): Promise {
+ const project = this.ctx.currentProject
+
+ assert(project, 'Cannot create spec without currentProject.')
+
+ const getCodeGenPath = () => {
+ return codeGenType === 'e2e'
+ ? this.ctx.path.join(
+ project,
+ codeGenCandidate,
+ )
+ : codeGenCandidate
+ }
+
+ const codeGenPath = getCodeGenPath()
+
+ const { specPattern = [] } = await this.ctx.project.specPatterns()
+
+ const newSpecCodeGenOptions = new SpecOptions({
+ codeGenPath,
+ codeGenType,
+ framework: this.getWizardFrameworkFromConfig(),
+ isDefaultSpecPattern: await this.ctx.project.getIsDefaultSpecPattern(),
+ specPattern,
+ currentProject: this.ctx.currentProject,
+ specs: this.ctx.project.specs,
+ componentName,
+ isDefault,
+ })
+
+ let codeGenOptions = await newSpecCodeGenOptions.getCodeGenOptions()
+
+ const codeGenResults = await codeGenerator(
+ { templateDir: templates[codeGenOptions.templateKey], target: codeGenOptions.overrideCodeGenDir || path.parse(codeGenPath).dir },
+ codeGenOptions,
+ )
+
+ if (!codeGenResults.files[0] || codeGenResults.failed[0]) {
+ throw (codeGenResults.failed[0] || 'Unable to generate spec')
+ }
+
+ const [newSpec] = codeGenResults.files
+
+ const cfg = await this.ctx.project.getConfig()
+
+ if (cfg && this.ctx.currentProject) {
+ const testingType = (codeGenType === 'component') ? 'component' : 'e2e'
+
+ await this.ctx.actions.project.setSpecsFoundBySpecPattern({
+ projectRoot: this.ctx.currentProject,
+ testingType,
+ specPattern: cfg.specPattern ?? [],
+ configSpecPattern: cfg.specPattern ?? [],
+ excludeSpecPattern: cfg.excludeSpecPattern,
+ additionalIgnorePattern: cfg.additionalIgnorePattern,
+ })
+ }
+
+ return {
+ status: 'valid',
+ file: { absolute: newSpec.file, contents: newSpec.content },
+ description: 'Generated spec',
+ }
+ }
+
+ get defaultE2EPath () {
+ const projectRoot = this.ctx.currentProject
+
+ assert(projectRoot, `Cannot create e2e directory without currentProject.`)
+
+ return path.join(projectRoot, 'cypress', 'e2e')
+ }
+
+ async scaffoldIntegration (): Promise {
+ const projectRoot = this.ctx.currentProject
+
+ assert(projectRoot, `Cannot create spec without currentProject.`)
+
+ const results = await codeGenerator(
+ { templateDir: templates['scaffoldIntegration'], target: this.defaultE2EPath },
+ {},
+ )
+
+ if (results.failed.length) {
+ throw new Error(`Failed generating files: ${results.failed.map((e) => `${e}`)}`)
+ }
+
+ return results.files.map(({ status, file, content }) => {
+ return {
+ status: (status === 'add' || status === 'overwrite') ? 'valid' : 'skipped',
+ file: { absolute: file, contents: content },
+ description: 'Generated spec',
+ }
+ })
+ }
+
+ getWizardFrameworkFromConfig (): WizardFrontendFramework | undefined {
+ const config = this.ctx.lifecycleManager.loadedConfigFile
+
+ // If devServer is a function, they are using a custom dev server.
+ if (!config?.component?.devServer || typeof config?.component?.devServer === 'function') {
+ return undefined
+ }
+
+ // @ts-ignore - because of the conditional above, we know that devServer isn't a function
+ return WIZARD_FRAMEWORKS.find((framework) => framework.configFramework === config?.component?.devServer.framework)
+ }
+}
+
+type ExportResolver = Map
+
+function findAllWithLink (exportResolver: ExportResolver) {
+ return (ast: any, parser: any, importer: any) => {
+ visit(ast, {
+ // export const Foo, export { Foo, Bar }, export function FooBar () { ... }
+ visitExportNamedDeclaration: (path) => {
+ const declaration = path.node.declaration as any
+
+ if (declaration) { // export const Foo
+ if (declaration.id) {
+ exportResolver.set(declaration.id.name, { exportName: declaration.id.name, isDefault: false })
+ } else { // export const Foo, Bar
+ (path.node.declaration as any).declarations.forEach((node: any) => {
+ const id = node.name ?? node.id?.name
+
+ if (id) {
+ exportResolver.set(id, { exportName: id, isDefault: false })
+ }
+ })
+ }
+ } else { // export { Foo, Bar }
+ path.node.specifiers?.forEach((node) => {
+ if (!node.local?.name) {
+ return
+ }
+
+ if (node.exported?.name === 'default') { // export { Foo as default }
+ exportResolver.set(node.local.name, {
+ exportName: node.local.name,
+ isDefault: true,
+ })
+ } else {
+ exportResolver.set(node.local.name, {
+ exportName: node.exported.name,
+ isDefault: false,
+ })
+ }
+ })
+ }
+
+ return false
+ },
+ // export default Foo
+ visitExportDefaultDeclaration: (path) => {
+ const declaration: any = path.node.declaration
+ const id: string = declaration.name || declaration.id?.name
+
+ if (id) { // export default Foo
+ exportResolver.set(id, {
+ exportName: id,
+ isDefault: true,
+ })
+ } else { // export default () => {}
+ exportResolver.set('', {
+ exportName: 'Component',
+ isDefault: true,
+ })
+ }
+
+ return false
+ },
+ })
+
+ return reactDocgenResolvers.findAllExportedComponentDefinitions(ast, parser, importer)
+ }
+}
diff --git a/packages/data-context/src/actions/ProjectActions.ts b/packages/data-context/src/actions/ProjectActions.ts
index 2a200c767a53..5e416233ac64 100644
--- a/packages/data-context/src/actions/ProjectActions.ts
+++ b/packages/data-context/src/actions/ProjectActions.ts
@@ -1,4 +1,4 @@
-import type { CodeGenType, MutationSetProjectPreferencesInGlobalCacheArgs, NexusGenObjects, NexusGenUnions } from '@packages/graphql/src/gen/nxs.gen'
+import type { MutationSetProjectPreferencesInGlobalCacheArgs, NexusGenObjects, NexusGenUnions } from '@packages/graphql/src/gen/nxs.gen'
import { InitializeProjectOptions, FoundBrowser, OpenProjectLaunchOptions, Preferences, TestingType, ReceivedCypressOptions, AddProject, FullConfig, AllowedState, SpecWithRelativeRoot, OpenProjectLaunchOpts, RUN_ALL_SPECS, RUN_ALL_SPECS_KEY } from '@packages/types'
import type { EventEmitter } from 'events'
import execa from 'execa'
@@ -6,14 +6,12 @@ import path from 'path'
import assert from 'assert'
import type { ProjectShape } from '../data/coreDataShape'
-
import type { DataContext } from '..'
-import { codeGenerator, SpecOptions, hasNonExampleSpec } from '../codegen'
+import { hasNonExampleSpec } from '../codegen'
import templates from '../codegen/templates'
import { insertValuesInConfigFile } from '../util'
import { getError } from '@packages/errors'
import { resetIssuedWarnings } from '@packages/config'
-import { WizardFrontendFramework, WIZARD_FRAMEWORKS } from '@packages/scaffold-config'
export interface ProjectApiShape {
/**
@@ -353,69 +351,6 @@ export class ProjectActions {
this.api.insertProjectPreferencesToCache(this.ctx.lifecycleManager.projectTitle, args)
}
- async codeGenSpec (codeGenCandidate: string, codeGenType: CodeGenType): Promise {
- const project = this.ctx.currentProject
-
- assert(project, 'Cannot create spec without currentProject.')
-
- const getCodeGenPath = () => {
- return codeGenType === 'e2e'
- ? this.ctx.path.join(
- project,
- codeGenCandidate,
- )
- : codeGenCandidate
- }
-
- const codeGenPath = getCodeGenPath()
-
- const { specPattern = [] } = await this.ctx.project.specPatterns()
-
- const newSpecCodeGenOptions = new SpecOptions({
- codeGenPath,
- codeGenType,
- framework: this.getWizardFrameworkFromConfig(),
- isDefaultSpecPattern: await this.ctx.project.getIsDefaultSpecPattern(),
- specPattern,
- currentProject: this.ctx.currentProject,
- specs: this.ctx.project.specs,
- })
-
- let codeGenOptions = await newSpecCodeGenOptions.getCodeGenOptions()
-
- const codeGenResults = await codeGenerator(
- { templateDir: templates[codeGenOptions.templateKey], target: codeGenOptions.overrideCodeGenDir || path.parse(codeGenPath).dir },
- codeGenOptions,
- )
-
- if (!codeGenResults.files[0] || codeGenResults.failed[0]) {
- throw (codeGenResults.failed[0] || 'Unable to generate spec')
- }
-
- const [newSpec] = codeGenResults.files
-
- const cfg = await this.ctx.project.getConfig()
-
- if (cfg && this.ctx.currentProject) {
- const testingType = (codeGenType === 'component') ? 'component' : 'e2e'
-
- await this.setSpecsFoundBySpecPattern({
- projectRoot: this.ctx.currentProject,
- testingType,
- specPattern: cfg.specPattern ?? [],
- configSpecPattern: cfg.specPattern ?? [],
- excludeSpecPattern: cfg.excludeSpecPattern,
- additionalIgnorePattern: cfg.additionalIgnorePattern,
- })
- }
-
- return {
- status: 'valid',
- file: { absolute: newSpec.file, contents: newSpec.content },
- description: 'Generated spec',
- }
- }
-
async setSpecsFoundBySpecPattern ({ projectRoot, testingType, specPattern, configSpecPattern, excludeSpecPattern, additionalIgnorePattern }: FindSpecs) {
const toArray = (val?: string | string[]) => val ? typeof val === 'string' ? [val] : val : []
@@ -475,37 +410,6 @@ export class ProjectActions {
this.ctx.actions.electron.showBrowserWindow()
}
- get defaultE2EPath () {
- const projectRoot = this.ctx.currentProject
-
- assert(projectRoot, `Cannot create e2e directory without currentProject.`)
-
- return path.join(projectRoot, 'cypress', 'e2e')
- }
-
- async scaffoldIntegration (): Promise {
- const projectRoot = this.ctx.currentProject
-
- assert(projectRoot, `Cannot create spec without currentProject.`)
-
- const results = await codeGenerator(
- { templateDir: templates['scaffoldIntegration'], target: this.defaultE2EPath },
- {},
- )
-
- if (results.failed.length) {
- throw new Error(`Failed generating files: ${results.failed.map((e) => `${e}`)}`)
- }
-
- return results.files.map(({ status, file, content }) => {
- return {
- status: (status === 'add' || status === 'overwrite') ? 'valid' : 'skipped',
- file: { absolute: file, contents: content },
- description: 'Generated spec',
- }
- })
- }
-
async hasNonExampleSpec () {
const specs = this.ctx.project.specs?.map((spec) => spec.relativeToCommonRoot)
@@ -553,16 +457,4 @@ export class ProjectActions {
await this.ctx.actions.wizard.scaffoldTestingType()
}
}
-
- getWizardFrameworkFromConfig (): WizardFrontendFramework | undefined {
- const config = this.ctx.lifecycleManager.loadedConfigFile
-
- // If devServer is a function, they are using a custom dev server.
- if (!config?.component?.devServer || typeof config?.component?.devServer === 'function') {
- return undefined
- }
-
- // @ts-ignore - because of the conditional above, we know that devServer isn't a function
- return WIZARD_FRAMEWORKS.find((framework) => framework.configFramework === config?.component?.devServer.framework)
- }
}
diff --git a/packages/data-context/src/actions/index.ts b/packages/data-context/src/actions/index.ts
index 4d3fec5aa01e..d75ead326aca 100644
--- a/packages/data-context/src/actions/index.ts
+++ b/packages/data-context/src/actions/index.ts
@@ -4,6 +4,7 @@
export * from './AppActions'
export * from './AuthActions'
export * from './BrowserActions'
+export * from './CodegenActions'
export * from './CohortsActions'
export * from './DataEmitterActions'
export * from './DevActions'
diff --git a/packages/data-context/src/codegen/spec-options.ts b/packages/data-context/src/codegen/spec-options.ts
index 3332b45f13a4..dea6618626ff 100644
--- a/packages/data-context/src/codegen/spec-options.ts
+++ b/packages/data-context/src/codegen/spec-options.ts
@@ -2,9 +2,9 @@ import type { ParsedPath } from 'path'
import type { CodeGenType } from '@packages/graphql/src/gen/nxs.gen'
import type { WizardFrontendFramework } from '@packages/scaffold-config'
import fs from 'fs-extra'
-import { upperFirst } from 'lodash'
+import { uniq, upperFirst } from 'lodash'
import path from 'path'
-import { getDefaultSpecFileName } from '../sources/migration/utils'
+import { FileExtension, getDefaultSpecFileName } from '../sources/migration/utils'
import { toPosix } from '../util'
import type { FoundSpec } from '@packages/types'
@@ -16,6 +16,8 @@ interface CodeGenOptions {
currentProject: string | null
framework?: WizardFrontendFramework
specs?: FoundSpec[]
+ componentName?: string
+ isDefault?: boolean
}
// Spec file extensions that we will preserve when updating the file name
@@ -28,7 +30,7 @@ interface CodeGenOptions {
export const expectedSpecExtensions = ['.cy', '.spec', '.test', '-spec', '-test', '_spec']
type ComponentExtension = `.cy.${'js' | 'ts' | 'jsx' | 'tsx'}`
-type TemplateKey = 'e2e' | 'componentEmpty' | 'vueComponent'
+type TemplateKey = 'e2e' | 'componentEmpty' | 'vueComponent' | 'reactComponent'
export class SpecOptions {
private parsedPath: ParsedPath;
@@ -54,19 +56,14 @@ export class SpecOptions {
throw new Error('Cannot generate a spec without a framework')
}
- // This only works for Vue projects right now. If the framework is not Vue, we're generating an empty component test
- if (this.options.framework.codeGenFramework !== 'vue') {
- return {
- codeGenType: this.options.codeGenType,
- fileName: await this.buildFileName(),
- templateKey: 'componentEmpty' as TemplateKey,
- overrideCodeGenDir: '',
- }
+ switch (this.options.framework.codeGenFramework) {
+ case 'react':
+ return await this.getReactSpecOptions()
+ case 'vue':
+ return await this.getVueSpecOptions()
+ default:
+ throw new Error(`Unable to generate spec for ${this.options.framework.codeGenFramework}`)
}
-
- const frameworkOptions = await this.getFrameworkComponentOptions()
-
- return frameworkOptions
}
private getRelativePathToComponent (specParsedPath?: ParsedPath) {
@@ -81,7 +78,7 @@ export class SpecOptions {
return `./${this.parsedPath.base}`
}
- private async getFrameworkComponentOptions () {
+ private async getVueSpecOptions () {
const componentName = this.buildComponentNameFromFilename(this.parsedPath.name)
const extension = await this.getVueExtension()
@@ -92,7 +89,7 @@ export class SpecOptions {
if (!this.options.isDefaultSpecPattern) {
parsedSpecPath = path.parse(await getDefaultSpecFileName({
currentProject: this.options.currentProject,
- testingType: this.options.codeGenType === 'componentEmpty' || this.options.codeGenType === 'component' ? 'component' : 'e2e',
+ testingType: 'component',
fileExtensionToUse: (extension === '.cy.ts' || extension === '.cy.tsx') ? 'ts' : 'js',
specPattern: this.options.specPattern,
name: componentName,
@@ -112,6 +109,40 @@ export class SpecOptions {
}
}
+ private async getReactSpecOptions () {
+ // For React specs, use the component name that the user selected. Otherwise fall back to the component file name.
+ const componentName = this.options.componentName || this.parsedPath.name
+
+ let parsedSpecPath: ParsedPath | undefined
+
+ // If we have a custom spec pattern, write the spec to a path that matches the pattern instead of the component directory
+ if (!this.options.isDefaultSpecPattern) {
+ parsedSpecPath = path.parse(await getDefaultSpecFileName({
+ currentProject: this.options.currentProject,
+ testingType: 'component',
+ fileExtensionToUse: this.parsedPath.ext as FileExtension,
+ specPattern: this.options.specPattern,
+ name: componentName,
+ specs: this.options.specs }))
+ }
+
+ // The path to import the component from
+ const componentPath = path.parse(this.getRelativePathToComponent(parsedSpecPath))
+
+ const extension = `.cy${this.parsedPath.ext}`
+
+ return {
+ codeGenType: this.options.codeGenType,
+ componentName,
+ componentPath: `${componentPath.dir}/${componentPath.name}`,
+ // If the component name and file name are different, the spec file should be combined (ex: SpecNameComponentName.cy.xx)
+ fileName: await this.buildComponentSpecFilename(extension, parsedSpecPath, uniq([this.parsedPath.name, componentName]).join('')),
+ templateKey: 'reactComponent' as TemplateKey,
+ overrideCodeGenDir: parsedSpecPath?.dir,
+ isDefault: this.options.isDefault,
+ }
+ }
+
private async getVueExtension (): Promise {
try {
const fileContent = await fs
@@ -153,11 +184,11 @@ export class SpecOptions {
.join('')
}
- private buildComponentSpecFilename (specExt: string, filePath?: ParsedPath) {
+ private buildComponentSpecFilename (specExt: string, filePath?: ParsedPath, fileName?: string) {
const { dir, base, ext } = filePath || this.parsedPath
const cyWithExt = this.getSpecExtension(filePath) + ext
- const name = base.slice(0, -cyWithExt.length)
+ const name = fileName || base.slice(0, -cyWithExt.length)
const finalExtension = filePath ? cyWithExt : specExt
diff --git a/packages/data-context/src/codegen/templates.ts b/packages/data-context/src/codegen/templates.ts
index 58f7a03bbed4..88b343cb199c 100644
--- a/packages/data-context/src/codegen/templates.ts
+++ b/packages/data-context/src/codegen/templates.ts
@@ -4,6 +4,7 @@ import cypressEx from '@packages/example'
const getPath = (dir: string) => path.join(__dirname, dir)
export default {
+ reactComponent: getPath('./templates/react-component'),
vueComponent: getPath('./templates/vue-component'),
componentEmpty: getPath('./templates/empty-component'),
e2e: getPath('./templates/empty-e2e'),
diff --git a/packages/data-context/src/codegen/templates/react-component/react-component.ejs b/packages/data-context/src/codegen/templates/react-component/react-component.ejs
new file mode 100644
index 000000000000..8c4cbae29d9c
--- /dev/null
+++ b/packages/data-context/src/codegen/templates/react-component/react-component.ejs
@@ -0,0 +1,13 @@
+---
+fileName: <%= fileName %>
+---
+
+import React from 'react'
+import <%= isDefault ? componentName : `{ ${componentName} }` %> from '<%- componentPath %>'
+
+describe('<<%- componentName %> />', () => {
+ it('renders', () => {
+ // see: https://on.cypress.io/mounting-react
+ cy.mount(<<%- componentName %> />)
+ })
+})
\ No newline at end of file
diff --git a/packages/data-context/src/codegen/templates/vue-component/vue-component.ejs b/packages/data-context/src/codegen/templates/vue-component/vue-component.ejs
index 1666e3edb517..5d06d845e413 100644
--- a/packages/data-context/src/codegen/templates/vue-component/vue-component.ejs
+++ b/packages/data-context/src/codegen/templates/vue-component/vue-component.ejs
@@ -6,7 +6,7 @@ import <%- componentName %> from '<%- componentPath %>'
describe('<<%=componentName%> />', () => {
it('renders', () => {
- // see: https://test-utils.vuejs.org/guide/
+ // see: https://on.cypress.io/mounting-vue
cy.mount(<%- componentName %>)
})
})
\ No newline at end of file
diff --git a/packages/data-context/src/sources/ProjectDataSource.ts b/packages/data-context/src/sources/ProjectDataSource.ts
index a3cdefdeef15..43496eaef3c2 100644
--- a/packages/data-context/src/sources/ProjectDataSource.ts
+++ b/packages/data-context/src/sources/ProjectDataSource.ts
@@ -21,7 +21,7 @@ import { toPosix } from '../util/file'
import type { FilePartsShape } from '@packages/graphql/src/schemaTypes/objectTypes/gql-FileParts'
import type { ProjectShape } from '../data'
import type { FindSpecs } from '../actions'
-import { getDefaultSpecFileName } from './migration/utils'
+import { FileExtension, getDefaultSpecFileName } from './migration/utils'
interface MatchedSpecs {
projectRoot: string
@@ -140,7 +140,7 @@ export function getPathFromSpecPattern ({
name = '' }:
{ specPattern: string
testingType: TestingType
- fileExtensionToUse?: 'js' | 'ts'
+ fileExtensionToUse?: FileExtension
name?: string}) {
function replaceWildCard (s: string, fallback: string) {
return s.replace(/\*/g, fallback)
@@ -176,7 +176,13 @@ export function getPathFromSpecPattern ({
const globWithoutBraces = micromatch.braces(glob, { expand: true })
- let finalGlob = globWithoutBraces[0]
+ let finalGlob
+
+ if (fileExtensionToUse) {
+ finalGlob = globWithoutBraces.find((glob) => glob.includes(fileExtensionToUse)) || globWithoutBraces[0]
+ } else {
+ finalGlob = globWithoutBraces[0]
+ }
if (fileExtensionToUse) {
const filteredGlob = micromatch(globWithoutBraces, `*.${fileExtensionToUse}`, { basename: true })
@@ -475,7 +481,7 @@ export class ProjectDataSource {
const looseComponentGlob = '*.{js,jsx,ts,tsx,vue}'
- const framework = this.ctx.actions.project.getWizardFrameworkFromConfig()
+ const framework = this.ctx.actions.codegen.getWizardFrameworkFromConfig()
return {
component: framework?.glob ?? looseComponentGlob,
@@ -522,7 +528,11 @@ export class ProjectDataSource {
throw Error(`Cannot find components without currentProject.`)
}
- const codeGenCandidates = await this.ctx.file.getFilesByGlob(projectRoot, glob, { expandDirectories: true })
+ const codeGenCandidates = await this.ctx.file.getFilesByGlob(
+ projectRoot,
+ glob,
+ { expandDirectories: true, ignore: ['**/*.config.{js,ts}', '**/*.{cy,spec}.{js,ts,jsx,tsx}'] },
+ )
return codeGenCandidates.map((absolute) => ({ absolute }))
}
diff --git a/packages/data-context/src/sources/migration/codegen.ts b/packages/data-context/src/sources/migration/codegen.ts
index a3109212c13c..6fee461a210e 100644
--- a/packages/data-context/src/sources/migration/codegen.ts
+++ b/packages/data-context/src/sources/migration/codegen.ts
@@ -535,6 +535,7 @@ export function getSpecPattern (cfg: LegacyCypressConfigJson, testingType: Testi
function formatWithBundledBabel (config: string) {
const ast = parse(config)
+ // @ts-ignore - transitive babel types have a minor conflict - readonly vs non readonly.
let { code } = generate(ast, {}, config)
// By default babel generates imports like this:
// const {
diff --git a/packages/data-context/src/sources/migration/utils.ts b/packages/data-context/src/sources/migration/utils.ts
index af89cbb39d65..ff2e8e669312 100644
--- a/packages/data-context/src/sources/migration/utils.ts
+++ b/packages/data-context/src/sources/migration/utils.ts
@@ -13,9 +13,11 @@ export const isDefaultSupportFile = (supportFile: string) => {
return false
}
+export type FileExtension = 'js' | 'ts' | 'jsx' | 'tsx'
+
export async function getDefaultSpecFileName (
{ currentProject, testingType, fileExtensionToUse, specPattern, specs = [], name }:
- { currentProject: string | null, testingType: TestingType | null, fileExtensionToUse: 'js' | 'ts', specPattern: string[], specs?: FoundSpec[], name?: string },
+ { currentProject: string | null, testingType: TestingType | null, fileExtensionToUse: FileExtension, specPattern: string[], specs?: FoundSpec[], name?: string },
): Promise {
const debug = Debug('cypress:data-context:sources:migration:utils')
diff --git a/packages/data-context/test/unit/actions/CodegenActions.spec.ts b/packages/data-context/test/unit/actions/CodegenActions.spec.ts
new file mode 100644
index 000000000000..b5607ea6fe42
--- /dev/null
+++ b/packages/data-context/test/unit/actions/CodegenActions.spec.ts
@@ -0,0 +1,135 @@
+import type { DataContext } from '../../../src'
+import { CodegenActions } from '../../../src/actions/CodegenActions'
+import { createTestDataContext } from '../helper'
+import { expect } from 'chai'
+import sinon from 'sinon'
+import path from 'path'
+
+describe('CodegenActions', () => {
+ let ctx: DataContext
+ let actions: CodegenActions
+
+ beforeEach(() => {
+ sinon.restore()
+
+ ctx = createTestDataContext('open')
+
+ actions = new CodegenActions(ctx)
+ })
+
+ context('getReactComponentsFromFile', () => {
+ const absolutePathPrefix = path.resolve('./test/unit/actions/project')
+
+ it('returns React components from file with class component', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-class.jsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('Counter')
+ expect(components[0].isDefault).to.equal(false)
+ })
+
+ it('returns React components from file with functional component', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-functional.jsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('Counter')
+ expect(components[0].isDefault).to.equal(false)
+ })
+
+ it('returns only exported React components from file with functional components', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-multiple-components.jsx`)
+
+ expect(components).to.have.length(2)
+ expect(components[0].exportName).to.equal('CounterContainer')
+ expect(components[0].isDefault).to.equal(false)
+
+ expect(components[1].exportName).to.equal('CounterView')
+ expect(components[1].isDefault).to.equal(false)
+ })
+
+ it('returns React components from a tsx file', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter.tsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('Counter')
+ expect(components[0].isDefault).to.equal(false)
+ })
+
+ it('returns React components that are exported by default', async () => {
+ let reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-default.tsx`)).components
+
+ expect(reactComponents).to.have.length(1)
+ expect(reactComponents[0].exportName).to.equal('CounterDefault')
+ expect(reactComponents[0].isDefault).to.equal(true)
+
+ reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-anonymous.jsx`)).components
+ expect(reactComponents).to.have.length(1)
+ expect(reactComponents[0].exportName).to.equal('Component')
+ expect(reactComponents[0].isDefault).to.equal(true)
+
+ reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-function.jsx`)).components
+ expect(reactComponents).to.have.length(1)
+ expect(reactComponents[0].exportName).to.equal('HelloWorld')
+ expect(reactComponents[0].isDefault).to.equal(true)
+
+ reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-class.jsx`)).components
+ expect(reactComponents).to.have.length(1)
+ expect(reactComponents[0].exportName).to.equal('HelloWorld')
+ expect(reactComponents[0].isDefault).to.equal(true)
+
+ reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-specifier.jsx`)).components
+ expect(reactComponents).to.have.length(1)
+ expect(reactComponents[0].exportName).to.equal('HelloWorld')
+ expect(reactComponents[0].isDefault).to.equal(true)
+ })
+
+ it('returns React components defined with arrow functions', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-arrow-function.jsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('Counter')
+ expect(components[0].isDefault).to.equal(false)
+ })
+
+ it('returns React components from a file with multiple separate export statements', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-separate-exports.jsx`)
+
+ expect(components).to.have.length(2)
+ expect(components[0].exportName).to.equal('CounterView')
+ expect(components[0].isDefault).to.equal(false)
+ expect(components[1].exportName).to.equal('CounterContainer')
+ expect(components[1].isDefault).to.equal(true)
+ })
+
+ it('returns React components that are exported and aliased', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/export-alias.jsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('HelloWorld')
+ expect(components[0].isDefault).to.equal(false)
+ })
+
+ // TODO: "react-docgen" will resolve HOCs but our export detection does not. Can fall back to displayName here
+ it.skip('handles higher-order-components', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-hoc.jsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('Counter')
+ expect(components[0].isDefault).to.equal(true)
+ })
+
+ it('correctly parses typescript files', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/LoginForm.tsx`)
+
+ expect(components).to.have.length(1)
+ expect(components[0].exportName).to.equal('LoginForm')
+ expect(components[0].isDefault).to.equal(true)
+ })
+
+ it('does not throw while parsing empty file', async () => {
+ const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/empty.jsx`)
+
+ expect(components).to.have.length(0)
+ })
+ })
+})
diff --git a/packages/data-context/test/unit/actions/project/LoginForm.tsx b/packages/data-context/test/unit/actions/project/LoginForm.tsx
new file mode 100644
index 000000000000..18495489cdab
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/LoginForm.tsx
@@ -0,0 +1,21 @@
+import React from 'react'
+
+interface LoginFormProps {
+ onLogin: ({
+ username,
+ password,
+ }: {
+ username: string
+ password: string
+ }) => void
+ title?: string
+ errorMessage?: string
+}
+
+const LoginForm: React.FC = (props) => {
+ return (
+
+ )
+}
+
+export default LoginForm
diff --git a/packages/data-context/test/unit/actions/project/counter-arrow-function.jsx b/packages/data-context/test/unit/actions/project/counter-arrow-function.jsx
new file mode 100644
index 000000000000..3ade93d8fbe3
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-arrow-function.jsx
@@ -0,0 +1,7 @@
+import React from 'react'
+
+export const Counter = () => {
+ const [count, setCount] = React.useState(0)
+
+ return setCount(count + 1)}>count: {count}
+}
diff --git a/packages/data-context/test/unit/actions/project/counter-class.jsx b/packages/data-context/test/unit/actions/project/counter-class.jsx
new file mode 100644
index 000000000000..65fc181d2545
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-class.jsx
@@ -0,0 +1,20 @@
+import React from 'react'
+
+export class Counter extends React.Component {
+ constructor (props) {
+ super(props)
+ this.state = {
+ count: 0,
+ }
+ }
+
+ click = () => {
+ this.setState({
+ count: this.state.count + 1,
+ })
+ }
+
+ render () {
+ return count: {this.state.count}
+ }
+}
diff --git a/packages/data-context/test/unit/actions/project/counter-default.tsx b/packages/data-context/test/unit/actions/project/counter-default.tsx
new file mode 100644
index 000000000000..f2fc1f608adf
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-default.tsx
@@ -0,0 +1,11 @@
+import React from 'react'
+
+export type Count = number
+
+function CounterDefault () {
+ const [count, setCount] = React.useState(0)
+
+ return setCount(count + 1)}>count: {count}
+}
+
+export default CounterDefault
diff --git a/packages/data-context/test/unit/actions/project/counter-functional.jsx b/packages/data-context/test/unit/actions/project/counter-functional.jsx
new file mode 100644
index 000000000000..ef00ed7a4802
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-functional.jsx
@@ -0,0 +1,7 @@
+import React from 'react'
+
+export function Counter () {
+ const [count, setCount] = React.useState(0)
+
+ return setCount(count + 1)}>count: {count}
+}
diff --git a/packages/data-context/test/unit/actions/project/counter-hoc.jsx b/packages/data-context/test/unit/actions/project/counter-hoc.jsx
new file mode 100644
index 000000000000..182843b9628e
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-hoc.jsx
@@ -0,0 +1,11 @@
+import React from 'react'
+
+function Counter () {
+ const [count, setCount] = React.useState(0)
+
+ return setCount(count + 1)}>count: {count}
+}
+
+const connect = (component) => component
+
+export default connect(Counter)
diff --git a/packages/data-context/test/unit/actions/project/counter-mixed-multiple-components.tsx b/packages/data-context/test/unit/actions/project/counter-mixed-multiple-components.tsx
new file mode 100644
index 000000000000..6b582e789096
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-mixed-multiple-components.tsx
@@ -0,0 +1,11 @@
+import React from 'react'
+
+export default function CounterContainer () {
+ const [count, setCount] = React.useState(0)
+
+ return
+}
+
+export function CounterView ({ count, setCount }) {
+ return setCount(count + 1)}>count: {count}
+}
diff --git a/packages/data-context/test/unit/actions/project/counter-multiple-components.jsx b/packages/data-context/test/unit/actions/project/counter-multiple-components.jsx
new file mode 100644
index 000000000000..788df7873155
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-multiple-components.jsx
@@ -0,0 +1,11 @@
+import React from 'react'
+
+export function CounterContainer () {
+ const [count, setCount] = React.useState(0)
+
+ return
+}
+
+export function CounterView ({ count, setCount }) {
+ return setCount(count + 1)}>count: {count}
+}
diff --git a/packages/data-context/test/unit/actions/project/counter-separate-exports.jsx b/packages/data-context/test/unit/actions/project/counter-separate-exports.jsx
new file mode 100644
index 000000000000..2315b00d832f
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter-separate-exports.jsx
@@ -0,0 +1,17 @@
+import React from 'react'
+
+function CounterContainer () {
+ const [count, setCount] = React.useState(0)
+
+ return
+}
+
+function CounterView ({ count, setCount }) {
+ return setCount(count + 1)}>count: {count}
+}
+
+export {
+ CounterView,
+}
+
+export default CounterContainer
diff --git a/packages/data-context/test/unit/actions/project/counter.tsx b/packages/data-context/test/unit/actions/project/counter.tsx
new file mode 100644
index 000000000000..4c5195d1a3de
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/counter.tsx
@@ -0,0 +1,9 @@
+import React from 'react'
+
+export type Count = number
+
+export function Counter () {
+ const [count, setCount] = React.useState(0)
+
+ return setCount(count + 1)}>count: {count}
+}
diff --git a/packages/data-context/test/unit/actions/project/default-anonymous.jsx b/packages/data-context/test/unit/actions/project/default-anonymous.jsx
new file mode 100644
index 000000000000..02d90896bf33
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/default-anonymous.jsx
@@ -0,0 +1 @@
+export default () => Hello World
diff --git a/packages/data-context/test/unit/actions/project/default-class.jsx b/packages/data-context/test/unit/actions/project/default-class.jsx
new file mode 100644
index 000000000000..f66ff20cbb9f
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/default-class.jsx
@@ -0,0 +1,7 @@
+import React from 'react'
+
+export default class HelloWorld extends React.Component {
+ render () {
+ return HelloWorld
+ }
+}
diff --git a/packages/data-context/test/unit/actions/project/default-function.jsx b/packages/data-context/test/unit/actions/project/default-function.jsx
new file mode 100644
index 000000000000..017493307099
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/default-function.jsx
@@ -0,0 +1,3 @@
+export default function HelloWorld () {
+ return Hello World
+}
diff --git a/packages/data-context/test/unit/actions/project/default-specifier.jsx b/packages/data-context/test/unit/actions/project/default-specifier.jsx
new file mode 100644
index 000000000000..7f52fb828b92
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/default-specifier.jsx
@@ -0,0 +1,3 @@
+const HelloWorld = () => Hello World
+
+export { HelloWorld as default }
diff --git a/packages/data-context/test/unit/actions/project/empty.jsx b/packages/data-context/test/unit/actions/project/empty.jsx
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/packages/data-context/test/unit/actions/project/export-alias.jsx b/packages/data-context/test/unit/actions/project/export-alias.jsx
new file mode 100644
index 000000000000..a559536710cd
--- /dev/null
+++ b/packages/data-context/test/unit/actions/project/export-alias.jsx
@@ -0,0 +1,3 @@
+const hw = () => HelloWorld
+
+export { hw as HelloWorld }
diff --git a/packages/data-context/test/unit/codegen/code-generator.spec.ts b/packages/data-context/test/unit/codegen/code-generator.spec.ts
index 5b46e3f150f6..b6c03f6554fa 100644
--- a/packages/data-context/test/unit/codegen/code-generator.spec.ts
+++ b/packages/data-context/test/unit/codegen/code-generator.spec.ts
@@ -18,13 +18,10 @@ const tmpPath = path.join(__dirname, 'tmp/test-code-gen')
const babelParse = (content: string) => parse(content, { sourceType: 'module', plugins: ['jsx', 'typescript'] })
describe('code-generator', () => {
- before(async () => {
- await fs.remove(tmpPath)
- })
-
let ctx: DataContext
beforeEach(async () => {
+ await fs.remove(tmpPath)
ctx = createTestDataContext()
ctx.update((s) => {
@@ -210,7 +207,7 @@ describe('code-generator', () => {
describe('<${codeGenArgs.componentName} />', () => {
it('renders', () => {
- // see: https://test-utils.vuejs.org/guide/
+ // see: https://on.cypress.io/mounting-vue
cy.mount(${codeGenArgs.componentName})
})
})`,
@@ -228,6 +225,100 @@ describe('code-generator', () => {
expect(() => babelParse(fileContent)).not.throw()
})
+ it('should generate from React component template', async () => {
+ const fileName = 'counter.cy.tsx'
+ const target = path.join(tmpPath, 'component')
+ const fileAbsolute = path.join(target, fileName)
+ const action: Action = {
+ templateDir: templates.reactComponent,
+ target,
+ }
+ const codeGenArgs = {
+ componentName: 'Counter',
+ componentPath: 'path/to/component',
+ fileName,
+ isDefault: false,
+ }
+
+ const codeGenResults = await codeGenerator(action, codeGenArgs)
+
+ const expected: CodeGenResults = {
+ files: [
+ {
+ type: 'text',
+ status: 'add',
+ file: fileAbsolute,
+ content: dedent`
+ import React from 'react'
+ import { ${codeGenArgs.componentName} } from '${codeGenArgs.componentPath}'
+
+ describe('<${codeGenArgs.componentName} />', () => {
+ it('renders', () => {
+ // see: https://on.cypress.io/mounting-react
+ cy.mount(<${codeGenArgs.componentName} />)
+ })
+ })`,
+ },
+ ],
+ failed: [],
+ }
+
+ expect(codeGenResults).deep.eq(expected)
+
+ const fileContent = (await fs.readFile(fileAbsolute)).toString()
+
+ expect(fileContent).eq(expected.files[0].content)
+
+ expect(() => babelParse(fileContent)).not.throw()
+ })
+
+ it('should generate from React component template with default export', async () => {
+ const fileName = 'counter.cy.tsx'
+ const target = path.join(tmpPath, 'component')
+ const fileAbsolute = path.join(target, fileName)
+ const action: Action = {
+ templateDir: templates.reactComponent,
+ target,
+ }
+ const codeGenArgs = {
+ componentName: 'Counter',
+ componentPath: 'path/to/component',
+ fileName,
+ isDefault: true,
+ }
+
+ const codeGenResults = await codeGenerator(action, codeGenArgs)
+
+ const expected: CodeGenResults = {
+ files: [
+ {
+ type: 'text',
+ status: 'add',
+ file: fileAbsolute,
+ content: dedent`
+ import React from 'react'
+ import ${codeGenArgs.componentName} from '${codeGenArgs.componentPath}'
+
+ describe('<${codeGenArgs.componentName} />', () => {
+ it('renders', () => {
+ // see: https://on.cypress.io/mounting-react
+ cy.mount(<${codeGenArgs.componentName} />)
+ })
+ })`,
+ },
+ ],
+ failed: [],
+ }
+
+ expect(codeGenResults).deep.eq(expected)
+
+ const fileContent = (await fs.readFile(fileAbsolute)).toString()
+
+ expect(fileContent).eq(expected.files[0].content)
+
+ expect(() => babelParse(fileContent)).not.throw()
+ })
+
it('should generate from scaffoldIntegration', async () => {
const target = path.join(tmpPath, 'scaffold-integration')
const action: Action = {
diff --git a/packages/data-context/test/unit/codegen/spec-options.spec.ts b/packages/data-context/test/unit/codegen/spec-options.spec.ts
index 053b4d3f96e1..083f85303771 100644
--- a/packages/data-context/test/unit/codegen/spec-options.spec.ts
+++ b/packages/data-context/test/unit/codegen/spec-options.spec.ts
@@ -77,12 +77,12 @@ describe('spec-options', () => {
})
})
- context('create from Vue component', () => {
+ context('create from component', () => {
afterEach(function () {
sinon.restore()
})
- context('default spec pattern', () => {
+ context('Vue', () => {
it('generates options for generating a Vue component spec', async () => {
const testSpecOptions = new SpecOptions({
currentProject: 'path/to/myProject',
@@ -96,6 +96,7 @@ describe('spec-options', () => {
const result = await testSpecOptions.getCodeGenOptions()
expect(result.codeGenType).to.eq('component')
+ expect(result.templateKey).to.eq('vueComponent')
expect(result.fileName).to.eq('MyComponent.cy.js')
})
@@ -114,10 +115,70 @@ describe('spec-options', () => {
const result = await testSpecOptions.getCodeGenOptions()
expect(result.codeGenType).to.eq('component')
+ expect(result.templateKey).to.eq('vueComponent')
expect(result.fileName).to.eq('MyComponent-copy-1.cy.js')
})
})
+ context('React', () => {
+ it('generates options for generating a React component spec', async () => {
+ const testSpecOptions = new SpecOptions({
+ currentProject: 'path/to/myProject',
+ codeGenPath: `${tmpPath}/Counter.tsx`,
+ codeGenType: 'component',
+ isDefaultSpecPattern: true,
+ framework: WIZARD_FRAMEWORKS[0],
+ specPattern: [defaultSpecPattern.component],
+ componentName: 'Counter',
+ isDefault: true,
+ })
+
+ const result = await testSpecOptions.getCodeGenOptions()
+
+ expect(result.codeGenType).to.eq('component')
+ expect(result.templateKey).to.eq('reactComponent')
+ expect(result.fileName).to.eq('Counter.cy.tsx')
+ })
+
+ it('creates a spec file with file and component names combined if they are different', async () => {
+ const testSpecOptions = new SpecOptions({
+ currentProject: 'path/to/myProject',
+ codeGenPath: `${tmpPath}/Counter.tsx`,
+ codeGenType: 'component',
+ isDefaultSpecPattern: true,
+ framework: WIZARD_FRAMEWORKS[0],
+ specPattern: [defaultSpecPattern.component],
+ componentName: 'View',
+ })
+
+ const result = await testSpecOptions.getCodeGenOptions()
+
+ expect(result.codeGenType).to.eq('component')
+ expect(result.templateKey).to.eq('reactComponent')
+ expect(result.fileName).to.eq('CounterView.cy.tsx')
+ })
+
+ it('creates copy file if spec already exists', async () => {
+ sinon.stub(fs, 'access').onFirstCall().resolves().onSecondCall().rejects()
+
+ const testSpecOptions = new SpecOptions({
+ currentProject: 'path/to/myProject',
+ codeGenPath: `${tmpPath}/Counter.tsx`,
+ codeGenType: 'component',
+ isDefaultSpecPattern: true,
+ framework: WIZARD_FRAMEWORKS[0],
+ specPattern: [defaultSpecPattern.component],
+ componentName: 'View',
+ })
+
+ const result = await testSpecOptions.getCodeGenOptions()
+
+ expect(result.codeGenType).to.eq('component')
+ expect(result.templateKey).to.eq('reactComponent')
+ expect(result.fileName).to.eq('CounterView-copy-1.cy.tsx')
+ })
+ })
+
context('custom spec pattern', () => {
[{ testName: 'src/specs-folder/*.cy.{js,jsx}', componentPath: 'ComponentName.vue', specs: [], pattern: 'src/specs-folder/*.cy.{js,jsx}', expectedPath: 'src/specs-folder/ComponentName.cy.js' },
{ testName: 'src/**/*.{spec,cy}.{js,jsx,ts,tsx}', componentPath: 'MyComponent.vue', specs: [], pattern: 'src/**/*.{spec,cy}.{js,jsx,ts,tsx}', expectedPath: 'src/MyComponent.spec.ts', isTypescriptComponent: true },
@@ -159,6 +220,7 @@ describe('spec-options', () => {
const result = await testSpecOptions.getCodeGenOptions()
expect(result.codeGenType).to.eq('component')
+ expect(result.templateKey).to.eq('vueComponent')
expect(`${result.overrideCodeGenDir}/${result.fileName}`).to.eq(expectedPath)
})
})
diff --git a/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Mutation.ts b/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Mutation.ts
index 8d6a4a6025b3..4136b0690e74 100644
--- a/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Mutation.ts
+++ b/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Mutation.ts
@@ -14,6 +14,27 @@ const atob = global.atob ?? function atob (str: string) {
export const stubMutation: MaybeResolver = {
__typename: 'Mutation',
+ getReactComponentsFromFile (source, args, ctx) {
+ return { components: [
+ {
+ __typename: 'ReactComponentDescriptor',
+ exportName: 'FooBar',
+ isDefault: false,
+ },
+ {
+ __typename: 'ReactComponentDescriptor',
+ exportName: 'BarFoo',
+ isDefault: true,
+ },
+ {
+ __typename: 'ReactComponentDescriptor',
+ exportName: 'FooBarBaz',
+ isDefault: false,
+ },
+ ],
+ errored: false,
+ }
+ },
addProject (source, args, ctx) {
if (!args.path) {
return {}
diff --git a/packages/frontend-shared/src/assets/icons/puzzle-piece_x16.svg b/packages/frontend-shared/src/assets/icons/puzzle-piece_x16.svg
new file mode 100644
index 000000000000..632ac217f8d5
--- /dev/null
+++ b/packages/frontend-shared/src/assets/icons/puzzle-piece_x16.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/packages/frontend-shared/src/locales/en-US.json b/packages/frontend-shared/src/locales/en-US.json
index 46173e71eb39..8c03900e7209 100644
--- a/packages/frontend-shared/src/locales/en-US.json
+++ b/packages/frontend-shared/src/locales/en-US.json
@@ -61,6 +61,8 @@
"newSpec": "New spec",
"createSpec": "Create spec",
"done": "Done!",
+ "noComponentsFound": "No components found",
+ "unableToParseFile": "Unable to parse file",
"updateSpecPattern": "Update spec pattern",
"newSpecModalTitle": "Create a new spec",
"successPage": {
diff --git a/packages/graphql/schemas/schema.graphql b/packages/graphql/schemas/schema.graphql
index 2dc07eb675c1..1157242a77f6 100644
--- a/packages/graphql/schemas/schema.graphql
+++ b/packages/graphql/schemas/schema.graphql
@@ -607,6 +607,7 @@ type CurrentProject implements Node & ProjectLike {
"""List of all code generation candidates stories"""
codeGenCandidates(glob: String!): [FileParts]
+ codeGenFramework: String
codeGenGlobs: CodeGenGlobs!
"""Project configuration"""
@@ -905,7 +906,9 @@ input FileDetailsInput {
enum FileExtensionEnum {
js
+ jsx
ts
+ tsx
}
"""Represents a file on the file system"""
@@ -1249,7 +1252,12 @@ type Mutation {
focusActiveBrowserWindow: Boolean!
"""Generate spec from source"""
- generateSpecFromSource(codeGenCandidate: String!, type: CodeGenType!): GenerateSpecResponse
+ generateSpecFromSource(codeGenCandidate: String!, componentName: String, isDefault: Boolean, type: CodeGenType!): GenerateSpecResponse
+
+ """
+ Parse a JS or TS file to see any exported React components that are defined in the file
+ """
+ getReactComponentsFromFile(filePath: String!): ReactComponentResponse
internal_clearAllProjectPreferencesCache: Boolean
internal_clearLatestProjectCache: Boolean
internal_clearProjectPreferencesCache(projectTitle: String!): Boolean
@@ -1578,6 +1586,28 @@ type Query {
wizard: Wizard!
}
+"""Properties describing a React component"""
+type ReactComponentDescriptor {
+ """
+ The name of the component export e.g. "export const Foo"
+ """
+ exportName: String!
+
+ """
+ Whether the component is a default export e.g. "export default Foo"
+ """
+ isDefault: Boolean!
+}
+
+"""Response from getReactComponentsFromFile"""
+type ReactComponentResponse {
+ """Components that are exported from the parsed file"""
+ components: [ReactComponentDescriptor!]!
+
+ """Whether or not there was there an error when parsing the file"""
+ errored: Boolean
+}
+
"""
Represents a container for a piece of remote data stitched into the graph
"""
diff --git a/packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts b/packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts
index 8b4d9e4b8bfc..d5b51c6188bf 100644
--- a/packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts
+++ b/packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts
@@ -2,5 +2,5 @@ import { enumType } from 'nexus'
export const FileExtensionEnum = enumType({
name: 'FileExtensionEnum',
- members: ['js', 'ts'],
+ members: ['js', 'ts', 'jsx', 'tsx'],
})
diff --git a/packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts b/packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts
index 1a7a806524cb..9f80d0de8828 100644
--- a/packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts
+++ b/packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts
@@ -199,6 +199,12 @@ export const CurrentProject = objectType({
},
})
+ t.string('codeGenFramework', {
+ resolve: (src, args, ctx) => {
+ return ctx.actions.codegen.getWizardFrameworkFromConfig()?.codeGenFramework || null
+ },
+ })
+
t.nonNull.field('codeGenGlobs', {
type: CodeGenGlobs,
resolve: (src, args, ctx) => ctx.project.getCodeGenGlobs(),
diff --git a/packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts b/packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts
index d47fe99f7413..86dacb69af19 100644
--- a/packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts
+++ b/packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts
@@ -12,6 +12,7 @@ import { Query } from './gql-Query'
import { ScaffoldedFile } from './gql-ScaffoldedFile'
import { WIZARD_BUNDLERS, WIZARD_FRAMEWORKS } from '@packages/scaffold-config'
import debugLib from 'debug'
+import { ReactComponentResponse } from './gql-ReactComponentResponse'
const debug = debugLib('cypress:graphql:mutation')
@@ -246,22 +247,35 @@ export const mutation = mutationType({
},
})
+ t.field('getReactComponentsFromFile', {
+ type: ReactComponentResponse,
+ description: 'Parse a JS or TS file to see any exported React components that are defined in the file',
+ args: {
+ filePath: nonNull(stringArg()),
+ },
+ resolve: (_, args, ctx) => {
+ return ctx.actions.codegen.getReactComponentsFromFile(args.filePath)
+ },
+ })
+
t.field('generateSpecFromSource', {
type: GenerateSpecResponse,
description: 'Generate spec from source',
args: {
codeGenCandidate: nonNull(stringArg()),
type: nonNull(CodeGenTypeEnum),
+ componentName: stringArg(),
+ isDefault: booleanArg(),
},
resolve: (_, args, ctx) => {
- return ctx.actions.project.codeGenSpec(args.codeGenCandidate, args.type)
+ return ctx.actions.codegen.codeGenSpec(args.codeGenCandidate, args.type, args.componentName || undefined, args.isDefault || undefined)
},
})
t.nonNull.list.nonNull.field('scaffoldIntegration', {
type: ScaffoldedFile,
resolve: (src, args, ctx) => {
- return ctx.actions.project.scaffoldIntegration()
+ return ctx.actions.codegen.scaffoldIntegration()
},
})
diff --git a/packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentDescriptor.ts b/packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentDescriptor.ts
new file mode 100644
index 000000000000..f0710351d457
--- /dev/null
+++ b/packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentDescriptor.ts
@@ -0,0 +1,15 @@
+import { objectType } from 'nexus'
+
+export const ReactComponentDescriptor = objectType({
+ name: 'ReactComponentDescriptor',
+ description: 'Properties describing a React component',
+ definition (t) {
+ t.nonNull.string('exportName', {
+ description: 'The name of the component export e.g. "export const Foo"',
+ })
+
+ t.nonNull.boolean('isDefault', {
+ description: 'Whether the component is a default export e.g. "export default Foo"',
+ })
+ },
+})
diff --git a/packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentResponse.ts b/packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentResponse.ts
new file mode 100644
index 000000000000..0ef498d025d4
--- /dev/null
+++ b/packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentResponse.ts
@@ -0,0 +1,17 @@
+import { objectType } from 'nexus'
+import { ReactComponentDescriptor } from './gql-ReactComponentDescriptor'
+
+export const ReactComponentResponse = objectType({
+ name: 'ReactComponentResponse',
+ description: 'Response from getReactComponentsFromFile',
+ definition (t) {
+ t.nonNull.list.nonNull.field('components', {
+ type: ReactComponentDescriptor,
+ description: 'Components that are exported from the parsed file',
+ })
+
+ t.boolean('errored', {
+ description: 'Whether or not there was there an error when parsing the file',
+ })
+ },
+})
diff --git a/packages/graphql/src/schemaTypes/objectTypes/index.ts b/packages/graphql/src/schemaTypes/objectTypes/index.ts
index c763d42771cc..9d3258855930 100644
--- a/packages/graphql/src/schemaTypes/objectTypes/index.ts
+++ b/packages/graphql/src/schemaTypes/objectTypes/index.ts
@@ -21,6 +21,8 @@ export * from './gql-Migration'
export * from './gql-Mutation'
export * from './gql-ProjectPreferences'
export * from './gql-Query'
+export * from './gql-ReactComponentDescriptor'
+export * from './gql-ReactComponentResponse'
export * from './gql-ScaffoldedFile'
export * from './gql-Spec'
export * from './gql-Subscription'
diff --git a/system-tests/__snapshots__/spec_isolation_spec.js b/system-tests/__snapshots__/spec_isolation_spec.js
index 964ba207b200..915b847a0328 100644
--- a/system-tests/__snapshots__/spec_isolation_spec.js
+++ b/system-tests/__snapshots__/spec_isolation_spec.js
@@ -156,4049 +156,4049 @@ Although you have test retries enabled, we do not retry tests when \`before all\
`
exports['e2e spec_isolation fails [electron] 1'] = {
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 8,
- "totalTests": 12,
- "totalFailed": 5,
- "totalPassed": 5,
- "totalPending": 1,
- "totalSkipped": 1,
- "runs": [
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 8,
+ 'totalTests': 12,
+ 'totalFailed': 5,
+ 'totalPassed': 5,
+ 'totalPending': 1,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(1000);\n }"
- }
+ 'body': '() => {\n cy.wait(1000);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple passing spec",
- "passes"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap(true).should('be.true');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple passing spec',
+ 'passes',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(true).should(\'be.true\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_passing.cy.js",
- "fileName": "simple_passing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_passing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_passing.cy.js",
- "relative": "cypress/e2e/simple_passing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_passing.cy.js',
+ 'fileName': 'simple_passing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_passing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_passing.cy.js',
+ 'relative': 'cypress/e2e/simple_passing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before all",
- "title": [
- "\"before all\" hook"
+ 'hookName': 'before all',
+ 'title': [
+ '"before all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
+ 'body': '() => {\n cy.wait(100);\n }',
},
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
- }
+ 'body': '() => {\n cy.wait(100);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple hooks spec",
- "t1"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't1',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t1\').should(\'eq\', \'t1\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t2\').should(\'eq\', \'t2\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t3"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't3',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t3\').should(\'eq\', \'t3\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_hooks.cy.js",
- "fileName": "simple_hooks",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_hooks.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_hooks.cy.js",
- "relative": "cypress/e2e/simple_hooks.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_hooks.cy.js',
+ 'fileName': 'simple_hooks',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_hooks.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_hooks.cy.js',
+ 'relative': 'cypress/e2e/simple_hooks.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "skipped": 0,
- "failures": 2,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 2,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "failures": 2,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'failures': 2,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple failing spec",
- "fails1"
- ],
- "state": "failed",
- "body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
- "displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n cy.wrap(true, {\n timeout: 100\n }).should(\'be.false\');\n }',
+ 'displayError': 'AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "AssertionError",
- "message": "Timed out retrying after 100ms: expected true to be false",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 37,
- "originalFile": "cypress/e2e/simple_failing.cy.js",
- "relativeFile": "cypress/e2e/simple_failing.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
- "frame": " 2 | describe('simple failing spec', () => {\n 3 | it('fails1', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should('be.false')\n | ^\n 5 | })\n 6 | \n 7 | it('fails2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'AssertionError',
+ 'message': 'Timed out retrying after 100ms: expected true to be false',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 37,
+ 'originalFile': 'cypress/e2e/simple_failing.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
+ 'frame': ' 2 | describe(\'simple failing spec\', () => {\n 3 | it(\'fails1\', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should(\'be.false\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'fails2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing spec",
- "fails2"
- ],
- "state": "failed",
- "body": "() => {\n throw new Error('fails2');\n }",
- "displayError": "Error: fails2\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails2',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n throw new Error(\'fails2\');\n }',
+ 'displayError': 'Error: fails2\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fails2",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 8,
- "column": 11,
- "originalFile": "cypress/e2e/simple_failing.cy.js",
- "relativeFile": "cypress/e2e/simple_failing.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
- "frame": " 6 | \n 7 | it('fails2', () => {\n> 8 | throw new Error('fails2')\n | ^\n 9 | })\n 10 | })\n 11 | ",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fails2',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 8,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_failing.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
+ 'frame': ' 6 | \n 7 | it(\'fails2\', () => {\n> 8 | throw new Error(\'fails2\')\n | ^\n 9 | })\n 10 | })\n 11 | ',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing.cy.js",
- "fileName": "simple_failing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing.cy.js",
- "relative": "cypress/e2e/simple_failing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing.cy.js',
+ 'fileName': 'simple_failing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing.cy.js',
+ 'relative': 'cypress/e2e/simple_failing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 26,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 26,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 24 | context(\'after hooks\', () => {\n 25 | after(() => {\n> 26 | throw new Error(\'fail3\')\n | ^\n 27 | })\n 28 | \n 29 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {},
- "status": "finished"
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
+ 'status': 'finished',
}
exports['e2e spec_isolation fails [chrome] 1'] = {
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 8,
- "totalTests": 12,
- "totalFailed": 5,
- "totalPassed": 5,
- "totalPending": 1,
- "totalSkipped": 1,
- "runs": [
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 8,
+ 'totalTests': 12,
+ 'totalFailed': 5,
+ 'totalPassed': 5,
+ 'totalPending': 1,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(1000);\n }"
- }
+ 'body': '() => {\n cy.wait(1000);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple passing spec",
- "passes"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap(true).should('be.true');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple passing spec',
+ 'passes',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(true).should(\'be.true\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_passing.cy.js",
- "fileName": "simple_passing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_passing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_passing.cy.js",
- "relative": "cypress/e2e/simple_passing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_passing.cy.js',
+ 'fileName': 'simple_passing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_passing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_passing.cy.js',
+ 'relative': 'cypress/e2e/simple_passing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before all",
- "title": [
- "\"before all\" hook"
+ 'hookName': 'before all',
+ 'title': [
+ '"before all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
+ 'body': '() => {\n cy.wait(100);\n }',
},
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
- }
+ 'body': '() => {\n cy.wait(100);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple hooks spec",
- "t1"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't1',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t1\').should(\'eq\', \'t1\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t2\').should(\'eq\', \'t2\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t3"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't3',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t3\').should(\'eq\', \'t3\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_hooks.cy.js",
- "fileName": "simple_hooks",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_hooks.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_hooks.cy.js",
- "relative": "cypress/e2e/simple_hooks.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_hooks.cy.js',
+ 'fileName': 'simple_hooks',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_hooks.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_hooks.cy.js',
+ 'relative': 'cypress/e2e/simple_hooks.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "skipped": 0,
- "failures": 2,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 2,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "failures": 2,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'failures': 2,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple failing spec",
- "fails1"
- ],
- "state": "failed",
- "body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
- "displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n cy.wrap(true, {\n timeout: 100\n }).should(\'be.false\');\n }',
+ 'displayError': 'AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "AssertionError",
- "message": "Timed out retrying after 100ms: expected true to be false",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 37,
- "originalFile": "cypress/e2e/simple_failing.cy.js",
- "relativeFile": "cypress/e2e/simple_failing.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
- "frame": " 2 | describe('simple failing spec', () => {\n 3 | it('fails1', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should('be.false')\n | ^\n 5 | })\n 6 | \n 7 | it('fails2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'AssertionError',
+ 'message': 'Timed out retrying after 100ms: expected true to be false',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 37,
+ 'originalFile': 'cypress/e2e/simple_failing.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
+ 'frame': ' 2 | describe(\'simple failing spec\', () => {\n 3 | it(\'fails1\', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should(\'be.false\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'fails2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing spec",
- "fails2"
- ],
- "state": "failed",
- "body": "() => {\n throw new Error('fails2');\n }",
- "displayError": "Error: fails2\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails2',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n throw new Error(\'fails2\');\n }',
+ 'displayError': 'Error: fails2\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fails2",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 8,
- "column": 11,
- "originalFile": "cypress/e2e/simple_failing.cy.js",
- "relativeFile": "cypress/e2e/simple_failing.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
- "frame": " 6 | \n 7 | it('fails2', () => {\n> 8 | throw new Error('fails2')\n | ^\n 9 | })\n 10 | })\n 11 | ",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fails2',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 8,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_failing.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
+ 'frame': ' 6 | \n 7 | it(\'fails2\', () => {\n> 8 | throw new Error(\'fails2\')\n | ^\n 9 | })\n 10 | })\n 11 | ',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing.cy.js",
- "fileName": "simple_failing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing.cy.js",
- "relative": "cypress/e2e/simple_failing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing.cy.js',
+ 'fileName': 'simple_failing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing.cy.js',
+ 'relative': 'cypress/e2e/simple_failing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 26,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 26,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 24 | context(\'after hooks\', () => {\n 25 | after(() => {\n> 26 | throw new Error(\'fail3\')\n | ^\n 27 | })\n 28 | \n 29 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {},
- "status": "finished"
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
+ 'status': 'finished',
}
exports['e2e spec_isolation fails [firefox] 1'] = {
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 8,
- "totalTests": 12,
- "totalFailed": 5,
- "totalPassed": 5,
- "totalPending": 1,
- "totalSkipped": 1,
- "runs": [
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 8,
+ 'totalTests': 12,
+ 'totalFailed': 5,
+ 'totalPassed': 5,
+ 'totalPending': 1,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(1000);\n }"
- }
+ 'body': '() => {\n cy.wait(1000);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple passing spec",
- "passes"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap(true).should('be.true');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple passing spec',
+ 'passes',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(true).should(\'be.true\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_passing.cy.js",
- "fileName": "simple_passing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_passing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_passing.cy.js",
- "relative": "cypress/e2e/simple_passing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_passing.cy.js',
+ 'fileName': 'simple_passing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_passing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_passing.cy.js',
+ 'relative': 'cypress/e2e/simple_passing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before all",
- "title": [
- "\"before all\" hook"
+ 'hookName': 'before all',
+ 'title': [
+ '"before all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
+ 'body': '() => {\n cy.wait(100);\n }',
},
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
- }
+ 'body': '() => {\n cy.wait(100);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple hooks spec",
- "t1"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't1',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t1\').should(\'eq\', \'t1\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t2\').should(\'eq\', \'t2\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t3"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't3',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t3\').should(\'eq\', \'t3\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_hooks.cy.js",
- "fileName": "simple_hooks",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_hooks.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_hooks.cy.js",
- "relative": "cypress/e2e/simple_hooks.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_hooks.cy.js',
+ 'fileName': 'simple_hooks',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_hooks.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_hooks.cy.js',
+ 'relative': 'cypress/e2e/simple_hooks.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "skipped": 0,
- "failures": 2,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 2,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "failures": 2,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'failures': 2,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple failing spec",
- "fails1"
- ],
- "state": "failed",
- "body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
- "displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n cy.wrap(true, {\n timeout: 100\n }).should(\'be.false\');\n }',
+ 'displayError': 'AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "AssertionError",
- "message": "Timed out retrying after 100ms: expected true to be false",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 37,
- "originalFile": "cypress/e2e/simple_failing.cy.js",
- "relativeFile": "cypress/e2e/simple_failing.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
- "frame": " 2 | describe('simple failing spec', () => {\n 3 | it('fails1', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should('be.false')\n | ^\n 5 | })\n 6 | \n 7 | it('fails2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'AssertionError',
+ 'message': 'Timed out retrying after 100ms: expected true to be false',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 37,
+ 'originalFile': 'cypress/e2e/simple_failing.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
+ 'frame': ' 2 | describe(\'simple failing spec\', () => {\n 3 | it(\'fails1\', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should(\'be.false\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'fails2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing spec",
- "fails2"
- ],
- "state": "failed",
- "body": "() => {\n throw new Error('fails2');\n }",
- "displayError": "Error: fails2\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails2',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n throw new Error(\'fails2\');\n }',
+ 'displayError': 'Error: fails2\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fails2",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 8,
- "column": 11,
- "originalFile": "cypress/e2e/simple_failing.cy.js",
- "relativeFile": "cypress/e2e/simple_failing.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
- "frame": " 6 | \n 7 | it('fails2', () => {\n> 8 | throw new Error('fails2')\n | ^\n 9 | })\n 10 | })\n 11 | ",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fails2',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 8,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_failing.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
+ 'frame': ' 6 | \n 7 | it(\'fails2\', () => {\n> 8 | throw new Error(\'fails2\')\n | ^\n 9 | })\n 10 | })\n 11 | ',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing.cy.js",
- "fileName": "simple_failing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing.cy.js",
- "relative": "cypress/e2e/simple_failing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing.cy.js',
+ 'fileName': 'simple_failing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing.cy.js',
+ 'relative': 'cypress/e2e/simple_failing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 26,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 26,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 24 | context(\'after hooks\', () => {\n 25 | after(() => {\n> 26 | throw new Error(\'fail3\')\n | ^\n 27 | })\n 28 | \n 29 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {},
- "status": "finished"
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
+ 'status': 'finished',
}
exports['e2e spec_isolation failing with retries enabled [electron] 1'] = {
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 6,
- "totalTests": 8,
- "totalFailed": 4,
- "totalPassed": 2,
- "totalPending": 1,
- "totalSkipped": 1,
- "runs": [
+ 'status': 'finished',
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 6,
+ 'totalTests': 8,
+ 'totalPassed': 2,
+ 'totalPending': 1,
+ 'totalFailed': 4,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 26,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 26,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 24 | context(\'after hooks\', () => {\n 25 | after(() => {\n> 26 | throw new Error(\'fail3\')\n | ^\n 27 | })\n 28 | \n 29 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 1,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 1,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "failures": 1,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 1,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple retrying spec",
- "t1"
- ],
- "state": "failed",
- "body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
- "displayError": "Error: t1 attempt #1\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n const test = cy.state(\'test\');\n throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`);\n }',
+ 'displayError': 'Error: t1 attempt #1\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #0",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 5,
- "column": 11,
- "originalFile": "cypress/e2e/simple_retrying.cy.js",
- "relativeFile": "cypress/e2e/simple_retrying.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
- "frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #0',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 5,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
+ 'frame': ' 3 | const test = cy.state(\'test\')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it(\'t2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #1",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 5,
- "column": 11,
- "originalFile": "cypress/e2e/simple_retrying.cy.js",
- "relativeFile": "cypress/e2e/simple_retrying.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
- "frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #1',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 5,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
+ 'frame': ' 3 | const test = cy.state(\'test\')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it(\'t2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple retrying spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {// pass\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n // pass\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_retrying.cy.js",
- "fileName": "simple_retrying",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_retrying.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_retrying.cy.js",
- "relative": "cypress/e2e/simple_retrying.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_retrying.cy.js',
+ 'fileName': 'simple_retrying',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_retrying.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_retrying.cy.js',
+ 'relative': 'cypress/e2e/simple_retrying.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {},
- "status": "finished"
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
}
exports['e2e spec_isolation failing with retries enabled [chrome] 1'] = {
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 6,
- "totalTests": 8,
- "totalFailed": 4,
- "totalPassed": 2,
- "totalPending": 1,
- "totalSkipped": 1,
- "runs": [
+ 'status': 'finished',
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 6,
+ 'totalTests': 8,
+ 'totalPassed': 2,
+ 'totalPending': 1,
+ 'totalFailed': 4,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 26,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 26,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 24 | context(\'after hooks\', () => {\n 25 | after(() => {\n> 26 | throw new Error(\'fail3\')\n | ^\n 27 | })\n 28 | \n 29 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 1,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 1,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "failures": 1,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 1,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple retrying spec",
- "t1"
- ],
- "state": "failed",
- "body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
- "displayError": "Error: t1 attempt #1\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n const test = cy.state(\'test\');\n throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`);\n }',
+ 'displayError': 'Error: t1 attempt #1\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #0",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 5,
- "column": 11,
- "originalFile": "cypress/e2e/simple_retrying.cy.js",
- "relativeFile": "cypress/e2e/simple_retrying.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
- "frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #0',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 5,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
+ 'frame': ' 3 | const test = cy.state(\'test\')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it(\'t2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #1",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 5,
- "column": 11,
- "originalFile": "cypress/e2e/simple_retrying.cy.js",
- "relativeFile": "cypress/e2e/simple_retrying.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
- "frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #1',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 5,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
+ 'frame': ' 3 | const test = cy.state(\'test\')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it(\'t2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple retrying spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {// pass\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n // pass\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_retrying.cy.js",
- "fileName": "simple_retrying",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_retrying.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_retrying.cy.js",
- "relative": "cypress/e2e/simple_retrying.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_retrying.cy.js',
+ 'fileName': 'simple_retrying',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_retrying.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_retrying.cy.js',
+ 'relative': 'cypress/e2e/simple_retrying.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {},
- "status": "finished"
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
}
exports['e2e spec_isolation failing with retries enabled [firefox] 1'] = {
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 6,
- "totalTests": 8,
- "totalFailed": 4,
- "totalPassed": 2,
- "totalPending": 1,
- "totalSkipped": 1,
- "runs": [
+ 'status': 'finished',
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 6,
+ 'totalTests': 8,
+ 'totalPassed': 2,
+ 'totalPending': 1,
+ 'totalFailed': 4,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 4,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 4,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 2 | context(\'beforeEach hooks\', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error(\'fail1\')\n | ^\n 5 | })\n 6 | \n 7 | it(\'never gets here\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 16,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 16,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 14 | context(\'afterEach hooks\', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error(\'fail2\')\n | ^\n 17 | })\n 18 | \n 19 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 26,
- "column": 13,
- "originalFile": "cypress/e2e/simple_failing_hook.cy.js",
- "relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
- "frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 26,
+ 'column': 13,
+ 'originalFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
+ 'frame': ' 24 | context(\'after hooks\', () => {\n 25 | after(() => {\n> 26 | throw new Error(\'fail3\')\n | ^\n 27 | })\n 28 | \n 29 | it(\'runs this\', () => {})',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 1,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 1,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "failures": 1,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 1,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple retrying spec",
- "t1"
- ],
- "state": "failed",
- "body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
- "displayError": "Error: t1 attempt #1\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n const test = cy.state(\'test\');\n throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`);\n }',
+ 'displayError': 'Error: t1 attempt #1\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #0",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 5,
- "column": 11,
- "originalFile": "cypress/e2e/simple_retrying.cy.js",
- "relativeFile": "cypress/e2e/simple_retrying.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
- "frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #0',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 5,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
+ 'frame': ' 3 | const test = cy.state(\'test\')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it(\'t2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #1",
- "stack": "[stack trace lines]",
- "codeFrame": {
- "line": 5,
- "column": 11,
- "originalFile": "cypress/e2e/simple_retrying.cy.js",
- "relativeFile": "cypress/e2e/simple_retrying.cy.js",
- "absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
- "frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
- "language": "js"
- }
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #1',
+ 'stack': '[stack trace lines]',
+ 'codeFrame': {
+ 'line': 5,
+ 'column': 11,
+ 'originalFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'relativeFile': 'cypress/e2e/simple_retrying.cy.js',
+ 'absoluteFile': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
+ 'frame': ' 3 | const test = cy.state(\'test\')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it(\'t2\', () => {',
+ 'language': 'js',
+ },
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple retrying spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {// pass\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n // pass\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_retrying.cy.js",
- "fileName": "simple_retrying",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_retrying.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_retrying.cy.js",
- "relative": "cypress/e2e/simple_retrying.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_retrying.cy.js',
+ 'fileName': 'simple_retrying',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_retrying.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_retrying.cy.js',
+ 'relative': 'cypress/e2e/simple_retrying.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {},
- "status": "finished"
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
}
exports['e2e spec_isolation failing with retries enabled [webkit] 1'] = {
- "status": "finished",
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 6,
- "totalTests": 8,
- "totalPassed": 2,
- "totalPending": 1,
- "totalFailed": 4,
- "totalSkipped": 1,
- "runs": [
+ 'status': 'finished',
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 6,
+ 'totalTests': 8,
+ 'totalPassed': 2,
+ 'totalPending': 1,
+ 'totalFailed': 4,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 1,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 1,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 1,
- "pending": 0,
- "failures": 1,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 1,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple retrying spec",
- "t1"
- ],
- "state": "failed",
- "body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
- "displayError": "Error: t1 attempt #1\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n const test = cy.state(\'test\');\n throw new Error(`${test.title} attempt #${cy.state(\'test\').currentRetry()}`);\n }',
+ 'displayError': 'Error: t1 attempt #1\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #0",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #0',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
},
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "t1 attempt #1",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 't1 attempt #1',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple retrying spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {// pass\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple retrying spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n // pass\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_retrying.cy.js",
- "fileName": "simple_retrying",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_retrying.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_retrying.cy.js",
- "relative": "cypress/e2e/simple_retrying.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_retrying.cy.js',
+ 'fileName': 'simple_retrying',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_retrying.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_retrying.cy.js',
+ 'relative': 'cypress/e2e/simple_retrying.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {}
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
}
exports['e2e spec_isolation fails [webkit] 1'] = {
- "status": "finished",
- "startedTestsAt": "2018-02-01T20:14:19.323Z",
- "endedTestsAt": "2018-02-01T20:14:19.323Z",
- "totalDuration": 5555,
- "totalSuites": 8,
- "totalTests": 12,
- "totalPassed": 5,
- "totalPending": 1,
- "totalFailed": 5,
- "totalSkipped": 1,
- "runs": [
+ 'status': 'finished',
+ 'startedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'endedTestsAt': '2018-02-01T20:14:19.323Z',
+ 'totalDuration': 5555,
+ 'totalSuites': 8,
+ 'totalTests': 12,
+ 'totalPassed': 5,
+ 'totalPending': 1,
+ 'totalFailed': 5,
+ 'totalSkipped': 1,
+ 'runs': [
{
- "stats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 1,
- "passes": 1,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 1,
+ 'passes': 1,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(1000);\n }"
- }
+ 'body': '() => {\n cy.wait(1000);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple passing spec",
- "passes"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap(true).should('be.true');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple passing spec',
+ 'passes',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(true).should(\'be.true\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_passing.cy.js",
- "fileName": "simple_passing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_passing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_passing.cy.js",
- "relative": "cypress/e2e/simple_passing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_passing.cy.js',
+ 'fileName': 'simple_passing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_passing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_passing.cy.js',
+ 'relative': 'cypress/e2e/simple_passing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "skipped": 0,
- "failures": 0,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 0,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 3,
- "passes": 3,
- "pending": 0,
- "failures": 0,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 3,
+ 'passes': 3,
+ 'pending': 0,
+ 'failures': 0,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before all",
- "title": [
- "\"before all\" hook"
+ 'hookName': 'before all',
+ 'title': [
+ '"before all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
+ 'body': '() => {\n cy.wait(100);\n }',
},
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n cy.wait(200);\n }"
+ 'body': '() => {\n cy.wait(200);\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n cy.wait(100);\n }"
- }
+ 'body': '() => {\n cy.wait(100);\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple hooks spec",
- "t1"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't1',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t1\').should(\'eq\', \'t1\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t2"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't2',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t2\').should(\'eq\', \'t2\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple hooks spec",
- "t3"
- ],
- "state": "passed",
- "body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple hooks spec',
+ 't3',
+ ],
+ 'state': 'passed',
+ 'body': '() => {\n cy.wrap(\'t3\').should(\'eq\', \'t3\');\n }',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
- }
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_hooks.cy.js",
- "fileName": "simple_hooks",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_hooks.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_hooks.cy.js",
- "relative": "cypress/e2e/simple_hooks.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_hooks.cy.js',
+ 'fileName': 'simple_hooks',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_hooks.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_hooks.cy.js',
+ 'relative': 'cypress/e2e/simple_hooks.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "skipped": 0,
- "failures": 2,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'skipped': 0,
+ 'failures': 2,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 1,
- "tests": 2,
- "passes": 0,
- "pending": 0,
- "failures": 2,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 1,
+ 'tests': 2,
+ 'passes': 0,
+ 'pending': 0,
+ 'failures': 2,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [],
- "tests": [
+ 'hooks': [],
+ 'tests': [
{
- "title": [
- "simple failing spec",
- "fails1"
- ],
- "state": "failed",
- "body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
- "displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails1',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n cy.wrap(true, {\n timeout: 100\n }).should(\'be.false\');\n }',
+ 'displayError': 'AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "AssertionError",
- "message": "Timed out retrying after 100ms: expected true to be false",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'AssertionError',
+ 'message': 'Timed out retrying after 100ms: expected true to be false',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing spec",
- "fails2"
- ],
- "state": "failed",
- "body": "() => {\n throw new Error('fails2');\n }",
- "displayError": "Error: fails2\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing spec',
+ 'fails2',
+ ],
+ 'state': 'failed',
+ 'body': '() => {\n throw new Error(\'fails2\');\n }',
+ 'displayError': 'Error: fails2\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fails2",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fails2',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing.cy.js",
- "fileName": "simple_failing",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing.cy.js",
- "relative": "cypress/e2e/simple_failing.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing.cy.js',
+ 'fileName': 'simple_failing',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing.cy.js',
+ 'relative': 'cypress/e2e/simple_failing.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js',
},
- "shouldUploadVideo": true
+ 'shouldUploadVideo': true,
},
{
- "stats": {
- "suites": 5,
- "tests": 6,
- "passes": 1,
- "pending": 1,
- "skipped": 1,
- "failures": 3,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "endedAt": "2018-02-01T20:14:19.323Z"
+ 'stats': {
+ 'suites': 5,
+ 'tests': 6,
+ 'passes': 1,
+ 'pending': 1,
+ 'skipped': 1,
+ 'failures': 3,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'endedAt': '2018-02-01T20:14:19.323Z',
},
- "reporter": "spec",
- "reporterStats": {
- "suites": 5,
- "tests": 5,
- "passes": 1,
- "pending": 1,
- "failures": 3,
- "start": "2018-02-01T20:14:19.323Z",
- "end": "2018-02-01T20:14:19.323Z",
- "duration": 1234
+ 'reporter': 'spec',
+ 'reporterStats': {
+ 'suites': 5,
+ 'tests': 5,
+ 'passes': 1,
+ 'pending': 1,
+ 'failures': 3,
+ 'start': '2018-02-01T20:14:19.323Z',
+ 'end': '2018-02-01T20:14:19.323Z',
+ 'duration': 1234,
},
- "hooks": [
+ 'hooks': [
{
- "hookName": "before each",
- "title": [
- "\"before each\" hook"
+ 'hookName': 'before each',
+ 'title': [
+ '"before each" hook',
],
- "body": "() => {\n throw new Error('fail1');\n }"
+ 'body': '() => {\n throw new Error(\'fail1\');\n }',
},
{
- "hookName": "after each",
- "title": [
- "\"after each\" hook"
+ 'hookName': 'after each',
+ 'title': [
+ '"after each" hook',
],
- "body": "() => {\n throw new Error('fail2');\n }"
+ 'body': '() => {\n throw new Error(\'fail2\');\n }',
},
{
- "hookName": "after all",
- "title": [
- "\"after all\" hook"
+ 'hookName': 'after all',
+ 'title': [
+ '"after all" hook',
],
- "body": "() => {\n throw new Error('fail3');\n }"
- }
+ 'body': '() => {\n throw new Error(\'fail3\');\n }',
+ },
],
- "tests": [
+ 'tests': [
{
- "title": [
- "simple failing hook spec",
- "beforeEach hooks",
- "never gets here"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'beforeEach hooks',
+ 'never gets here',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "pending",
- "is pending"
- ],
- "state": "pending",
- "body": "",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'pending',
+ 'is pending',
+ ],
+ 'state': 'pending',
+ 'body': '',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "pending",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'pending',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "runs this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'runs this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "afterEach hooks",
- "does not run this"
- ],
- "state": "skipped",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'afterEach hooks',
+ 'does not run this',
+ ],
+ 'state': 'skipped',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "skipped",
- "error": null,
- "videoTimestamp": null,
- "duration": null,
- "startedAt": null,
- "screenshots": []
- }
- ]
+ 'state': 'skipped',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': null,
+ 'startedAt': null,
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "runs this"
- ],
- "state": "passed",
- "body": "() => {}",
- "displayError": null,
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'runs this',
+ ],
+ 'state': 'passed',
+ 'body': '() => {}',
+ 'displayError': null,
+ 'attempts': [
{
- "state": "passed",
- "error": null,
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": []
- }
- ]
+ 'state': 'passed',
+ 'error': null,
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [],
+ },
+ ],
},
{
- "title": [
- "simple failing hook spec",
- "after hooks",
- "fails on this"
- ],
- "state": "failed",
- "body": "() => {}",
- "displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
- "attempts": [
+ 'title': [
+ 'simple failing hook spec',
+ 'after hooks',
+ 'fails on this',
+ ],
+ 'state': 'failed',
+ 'body': '() => {}',
+ 'displayError': 'Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]',
+ 'attempts': [
{
- "state": "failed",
- "error": {
- "name": "Error",
- "message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
- "stack": "[stack trace lines]"
+ 'state': 'failed',
+ 'error': {
+ 'name': 'Error',
+ 'message': 'fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`',
+ 'stack': '[stack trace lines]',
},
- "videoTimestamp": null,
- "duration": 1234,
- "startedAt": "2018-02-01T20:14:19.323Z",
- "screenshots": [
+ 'videoTimestamp': null,
+ 'duration': 1234,
+ 'startedAt': '2018-02-01T20:14:19.323Z',
+ 'screenshots': [
{
- "name": null,
- "takenAt": "2018-02-01T20:14:19.323Z",
- "path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
- "height": 720,
- "width": 1280
- }
- ]
- }
- ]
- }
+ 'name': null,
+ 'takenAt': '2018-02-01T20:14:19.323Z',
+ 'path': '/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png',
+ 'height': 720,
+ 'width': 1280,
+ },
+ ],
+ },
+ ],
+ },
],
- "error": null,
- "video": null,
- "spec": {
- "fileExtension": ".js",
- "baseName": "simple_failing_hook.cy.js",
- "fileName": "simple_failing_hook",
- "specFileExtension": ".cy.js",
- "relativeToCommonRoot": "simple_failing_hook.cy.js",
- "specType": "integration",
- "name": "cypress/e2e/simple_failing_hook.cy.js",
- "relative": "cypress/e2e/simple_failing_hook.cy.js",
- "absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
+ 'error': null,
+ 'video': null,
+ 'spec': {
+ 'fileExtension': '.js',
+ 'baseName': 'simple_failing_hook.cy.js',
+ 'fileName': 'simple_failing_hook',
+ 'specFileExtension': '.cy.js',
+ 'relativeToCommonRoot': 'simple_failing_hook.cy.js',
+ 'specType': 'integration',
+ 'name': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'relative': 'cypress/e2e/simple_failing_hook.cy.js',
+ 'absolute': '/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js',
},
- "shouldUploadVideo": true
- }
+ 'shouldUploadVideo': true,
+ },
],
- "browserPath": "path/to/browser",
- "browserName": "FooBrowser",
- "browserVersion": "88",
- "osName": "FooOS",
- "osVersion": "1234",
- "cypressVersion": "9.9.9",
- "config": {}
+ 'browserPath': 'path/to/browser',
+ 'browserName': 'FooBrowser',
+ 'browserVersion': '88',
+ 'osName': 'FooOS',
+ 'osVersion': '1234',
+ 'cypressVersion': '9.9.9',
+ 'config': {},
}
diff --git a/system-tests/projects/no-specs/cypress-custom-spec-pattern.config.ts b/system-tests/projects/no-specs/cypress-custom-spec-pattern.config.ts
new file mode 100644
index 000000000000..dce197877821
--- /dev/null
+++ b/system-tests/projects/no-specs/cypress-custom-spec-pattern.config.ts
@@ -0,0 +1,9 @@
+module.exports = {
+ component: {
+ specPattern: 'src/specs-folder/*.cy.{js,jsx}',
+ devServer: {
+ framework: 'react',
+ bundler: 'webpack',
+ },
+ },
+}
diff --git a/system-tests/projects/no-specs/cypress.config.ts b/system-tests/projects/no-specs/cypress.config.ts
index 7a00a9d123ba..eff23e6364e1 100644
--- a/system-tests/projects/no-specs/cypress.config.ts
+++ b/system-tests/projects/no-specs/cypress.config.ts
@@ -1,6 +1,5 @@
export default ({
component: {
- supportFile: false,
devServer: {
framework: 'react',
bundler: 'webpack',
diff --git a/system-tests/projects/no-specs/cypress/support/commands.js b/system-tests/projects/no-specs/cypress/support/commands.js
new file mode 100644
index 000000000000..119ab03f7cda
--- /dev/null
+++ b/system-tests/projects/no-specs/cypress/support/commands.js
@@ -0,0 +1,25 @@
+// ***********************************************
+// This example commands.js shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
diff --git a/system-tests/projects/no-specs/cypress/support/component.js b/system-tests/projects/no-specs/cypress/support/component.js
new file mode 100644
index 000000000000..be20eaa89ea2
--- /dev/null
+++ b/system-tests/projects/no-specs/cypress/support/component.js
@@ -0,0 +1,27 @@
+// ***********************************************************
+// This example support/component.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
+
+import { mount } from 'cypress/react'
+
+Cypress.Commands.add('mount', mount)
+
+// Example use:
+// cy.mount(MyComponent)
diff --git a/system-tests/projects/no-specs/src/Invalid.jsx b/system-tests/projects/no-specs/src/Invalid.jsx
new file mode 100644
index 000000000000..090f95335786
--- /dev/null
+++ b/system-tests/projects/no-specs/src/Invalid.jsx
@@ -0,0 +1,4 @@
+import React from 'react'
+
+/*eslint-disable */
+export function MyComponent (({
\ No newline at end of file
diff --git a/system-tests/test/testConfigOverrides_spec.ts b/system-tests/test/testConfigOverrides_spec.ts
index f5a1f08876b1..4d7e06af3cf3 100644
--- a/system-tests/test/testConfigOverrides_spec.ts
+++ b/system-tests/test/testConfigOverrides_spec.ts
@@ -56,7 +56,7 @@ describe('testConfigOverrides', () => {
console.log(results.runs[0].tests)
// make sure we've respected alway include test body even when skipped
expect(results.runs[0].tests[0].body).eq('() => {}')
- expect(results.runs[0].tests[1].body).eq('() => {// do something\n }')
+ expect(results.runs[0].tests[1].body).eq('() => {\n // do something\n }')
},
})
diff --git a/tooling/v8-snapshot/cache/darwin/snapshot-meta.json b/tooling/v8-snapshot/cache/darwin/snapshot-meta.json
index f6fa3441b738..175b12bb0e75 100644
--- a/tooling/v8-snapshot/cache/darwin/snapshot-meta.json
+++ b/tooling/v8-snapshot/cache/darwin/snapshot-meta.json
@@ -51,6 +51,8 @@
"./packages/https-proxy/lib/ca.js",
"./packages/net-stubbing/node_modules/debug/src/node.js",
"./packages/network/node_modules/minimatch/minimatch.js",
+ "./packages/proxy/lib/http/util/prerequests.ts",
+ "./packages/server/lib/browsers/index.ts",
"./packages/server/lib/browsers/utils.ts",
"./packages/server/lib/capture.js",
"./packages/server/lib/cloud/exception.ts",
@@ -74,6 +76,23 @@
"./ws/lib/websocket.js"
],
"deferred": [
+ "./node_modules/@ampproject/remapping/dist/remapping.umd.js",
+ "./node_modules/@babel/core/lib/config/config-chain.js",
+ "./node_modules/@babel/core/lib/config/config-descriptors.js",
+ "./node_modules/@babel/core/lib/config/files/configuration.js",
+ "./node_modules/@babel/core/lib/config/files/import-meta-resolve.js",
+ "./node_modules/@babel/core/lib/config/files/plugins.js",
+ "./node_modules/@babel/core/lib/config/full.js",
+ "./node_modules/@babel/core/lib/config/helpers/config-api.js",
+ "./node_modules/@babel/core/lib/config/index.js",
+ "./node_modules/@babel/core/lib/config/item.js",
+ "./node_modules/@babel/core/lib/config/partial.js",
+ "./node_modules/@babel/core/lib/config/pattern-to-regex.js",
+ "./node_modules/@babel/core/lib/gensync-utils/fs.js",
+ "./node_modules/@babel/core/lib/tools/build-external-helpers.js",
+ "./node_modules/@babel/core/lib/transformation/file/file.js",
+ "./node_modules/@babel/core/lib/transformation/normalize-file.js",
+ "./node_modules/@babel/core/node_modules/semver/semver.js",
"./node_modules/@babel/generator/lib/node/index.js",
"./node_modules/@babel/generator/lib/node/whitespace.js",
"./node_modules/@babel/types/lib/definitions/core.js",
@@ -86,10 +105,14 @@
"./node_modules/@babel/types/lib/definitions/typescript.js",
"./node_modules/@babel/types/lib/definitions/utils.js",
"./node_modules/@babel/types/lib/index.js",
+ "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
+ "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
+ "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
"./node_modules/@babel/types/lib/validators/is.js",
"./node_modules/@babel/types/lib/validators/isPlaceholderType.js",
"./node_modules/@babel/types/lib/validators/isType.js",
"./node_modules/@babel/types/lib/validators/validate.js",
+ "./node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/index.js",
"./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js",
@@ -134,6 +157,7 @@
"./node_modules/@jimp/plugins/dist/index.js",
"./node_modules/@jimp/tiff/dist/index.js",
"./node_modules/@jimp/types/dist/index.js",
+ "./node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js",
"./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js",
"./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js",
"./node_modules/@kwsites/file-exists/dist/index.js",
@@ -213,6 +237,7 @@
"./node_modules/compression/node_modules/safe-buffer/index.js",
"./node_modules/concat-stream/index.js",
"./node_modules/config-chain/index.js",
+ "./node_modules/convert-source-map/node_modules/safe-buffer/index.js",
"./node_modules/cp-file/cp-file-error.js",
"./node_modules/cp-file/fs.js",
"./node_modules/cp-file/progress-emitter.js",
@@ -244,6 +269,7 @@
"./node_modules/encoding/node_modules/iconv-lite/encodings/index.js",
"./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js",
"./node_modules/encoding/node_modules/iconv-lite/lib/index.js",
+ "./node_modules/esutils/lib/code.js",
"./node_modules/evil-dns/evil-dns.js",
"./node_modules/execa/node_modules/get-stream/buffer-stream.js",
"./node_modules/express-graphql/index.js",
@@ -489,6 +515,11 @@
"./node_modules/pseudomap/map.js",
"./node_modules/pumpify/index.js",
"./node_modules/queue/index.js",
+ "./node_modules/react-docgen/dist/babelParser.js",
+ "./node_modules/react-docgen/dist/importer/index.js",
+ "./node_modules/react-docgen/dist/importer/makeFsImporter.js",
+ "./node_modules/react-docgen/dist/main.js",
+ "./node_modules/react-docgen/dist/parse.js",
"./node_modules/readable-stream/lib/_stream_duplex.js",
"./node_modules/readable-stream/lib/_stream_passthrough.js",
"./node_modules/readable-stream/lib/_stream_readable.js",
@@ -634,10 +665,38 @@
"./packages/config/src/browser.ts",
"./packages/config/src/index.ts",
"./packages/config/src/options.ts",
- "./packages/config/src/project/index.ts",
- "./packages/config/src/project/utils.ts",
- "./packages/config/src/validation.ts",
"./packages/data-context/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/whitespace.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/validateNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/ensureBlock.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBlock.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toComputedKey.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toSequenceExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toStatement.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/valueToNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/experimental.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/flow.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/jsx.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/misc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/placeholders.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/typescript.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/utils.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/is.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isPlaceholderType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/validate.js",
"./packages/data-context/node_modules/chokidar/index.js",
"./packages/data-context/node_modules/chokidar/lib/constants.js",
"./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js",
@@ -655,39 +714,23 @@
"./packages/data-context/node_modules/supports-color/index.js",
"./packages/data-context/src/DataActions.ts",
"./packages/data-context/src/actions/DataEmitterActions.ts",
- "./packages/data-context/src/actions/EventCollectorActions.ts",
"./packages/data-context/src/actions/MigrationActions.ts",
- "./packages/data-context/src/actions/WizardActions.ts",
"./packages/data-context/src/actions/index.ts",
- "./packages/data-context/src/codegen/code-generator.ts",
"./packages/data-context/src/codegen/index.ts",
"./packages/data-context/src/codegen/templates.ts",
- "./packages/data-context/src/data/EventRegistrar.ts",
"./packages/data-context/src/data/LegacyPluginsIpc.ts",
"./packages/data-context/src/data/ProjectConfigIpc.ts",
- "./packages/data-context/src/data/ProjectConfigManager.ts",
"./packages/data-context/src/data/index.ts",
"./packages/data-context/src/globalPubSub.ts",
"./packages/data-context/src/index.ts",
"./packages/data-context/src/sources/BrowserDataSource.ts",
- "./packages/data-context/src/sources/CloudDataSource.ts",
- "./packages/data-context/src/sources/FileDataSource.ts",
- "./packages/data-context/src/sources/GitDataSource.ts",
- "./packages/data-context/src/sources/GraphQLDataSource.ts",
- "./packages/data-context/src/sources/HtmlDataSource.ts",
"./packages/data-context/src/sources/MigrationDataSource.ts",
- "./packages/data-context/src/sources/ProjectDataSource.ts",
- "./packages/data-context/src/sources/RemotePollingDataSource.ts",
- "./packages/data-context/src/sources/VersionsDataSource.ts",
"./packages/data-context/src/sources/index.ts",
"./packages/data-context/src/sources/migration/autoRename.ts",
"./packages/data-context/src/sources/migration/codegen.ts",
"./packages/data-context/src/sources/migration/format.ts",
"./packages/data-context/src/sources/migration/index.ts",
"./packages/data-context/src/sources/migration/shouldShowSteps.ts",
- "./packages/data-context/src/sources/migration/utils.ts",
- "./packages/data-context/src/util/config-file-updater.ts",
- "./packages/data-context/src/util/index.ts",
"./packages/electron/index.js",
"./packages/electron/lib/electron.js",
"./packages/electron/node_modules/get-stream/buffer-stream.js",
@@ -707,102 +750,29 @@
"./packages/graphql/node_modules/ws/lib/websocket-server.js",
"./packages/graphql/node_modules/ws/lib/websocket.js",
"./packages/graphql/src/makeGraphQLServer.ts",
- "./packages/graphql/src/plugins/index.ts",
- "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts",
- "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts",
- "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts",
- "./packages/graphql/src/plugins/nexusNodePlugin.ts",
- "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts",
- "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts",
- "./packages/graphql/src/schema.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/index.ts",
"./packages/graphql/src/schemaTypes/index.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/index.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-GenerateSpecResponse.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Migration.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Subscription.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts",
"./packages/graphql/src/schemaTypes/objectTypes/index.ts",
"./packages/graphql/src/schemaTypes/scalarTypes/gql-customScalars.ts",
"./packages/graphql/src/schemaTypes/scalarTypes/index.ts",
- "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts",
- "./packages/graphql/src/schemaTypes/unions/index.ts",
- "./packages/graphql/src/stitching/remoteSchema.ts",
"./packages/graphql/src/stitching/remoteSchemaWrapped.ts",
"./packages/https-proxy/index.js",
"./packages/https-proxy/test/helpers/certs.js",
"./packages/icons/dist/icons.js",
"./packages/icons/index.js",
- "./packages/launcher/lib/browsers.ts",
- "./packages/launcher/lib/darwin/index.ts",
- "./packages/launcher/lib/darwin/util.ts",
- "./packages/launcher/lib/detect.ts",
- "./packages/launcher/lib/linux/index.ts",
- "./packages/launcher/lib/windows/index.ts",
- "./packages/net-stubbing/lib/internal-types.ts",
- "./packages/net-stubbing/lib/server/driver-events.ts",
- "./packages/net-stubbing/lib/server/middleware/error.ts",
- "./packages/net-stubbing/lib/server/middleware/request.ts",
- "./packages/net-stubbing/lib/server/middleware/response.ts",
- "./packages/net-stubbing/lib/server/util.ts",
- "./packages/net-stubbing/lib/types.ts",
"./packages/net-stubbing/node_modules/debug/src/browser.js",
"./packages/net-stubbing/node_modules/debug/src/index.js",
"./packages/net-stubbing/node_modules/supports-color/index.js",
"./packages/network/index.js",
"./packages/network/lib/agent.ts",
- "./packages/network/lib/client-certificates.ts",
- "./packages/network/lib/connect.ts",
- "./packages/network/lib/cors.ts",
- "./packages/network/lib/uri.ts",
"./packages/proxy/index.js",
- "./packages/proxy/lib/http/error-middleware.ts",
"./packages/proxy/lib/http/index.ts",
- "./packages/proxy/lib/http/request-middleware.ts",
"./packages/proxy/lib/http/response-middleware.ts",
- "./packages/proxy/lib/http/util/buffers.ts",
- "./packages/proxy/lib/http/util/prerequests.ts",
"./packages/proxy/lib/http/util/regex-rewriter.ts",
"./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js",
"./packages/proxy/node_modules/iconv-lite/encodings/index.js",
@@ -810,65 +780,38 @@
"./packages/proxy/node_modules/iconv-lite/lib/index.js",
"./packages/resolve-dist/index.js",
"./packages/rewriter/index.js",
- "./packages/rewriter/lib/deferred-source-map-cache.ts",
- "./packages/rewriter/lib/js.ts",
"./packages/rewriter/lib/threads/index.ts",
"./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js",
"./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js",
"./packages/scaffold-config/index.js",
- "./packages/scaffold-config/src/detect.ts",
- "./packages/scaffold-config/src/index.ts",
- "./packages/server/lib/automation/cookies.ts",
- "./packages/server/lib/browsers/browser-cri-client.ts",
- "./packages/server/lib/browsers/cdp_automation.ts",
"./packages/server/lib/browsers/chrome.ts",
- "./packages/server/lib/browsers/cri-client.ts",
- "./packages/server/lib/browsers/electron.ts",
- "./packages/server/lib/browsers/firefox-util.ts",
"./packages/server/lib/browsers/firefox.ts",
- "./packages/server/lib/browsers/index.ts",
- "./packages/server/lib/browsers/webkit-automation.ts",
- "./packages/server/lib/browsers/webkit.ts",
"./packages/server/lib/cache.js",
"./packages/server/lib/cloud/api.ts",
"./packages/server/lib/cloud/auth.ts",
"./packages/server/lib/cloud/routes.ts",
+ "./packages/server/lib/cloud/upload.ts",
"./packages/server/lib/cloud/user.ts",
- "./packages/server/lib/config.ts",
- "./packages/server/lib/controllers/iframes.ts",
"./packages/server/lib/cypress.js",
"./packages/server/lib/environment.js",
- "./packages/server/lib/gui/windows.ts",
+ "./packages/server/lib/files.js",
+ "./packages/server/lib/fixture.js",
"./packages/server/lib/log.js",
"./packages/server/lib/makeDataContext.ts",
"./packages/server/lib/modes/interactive.ts",
"./packages/server/lib/plugins/dev-server.js",
"./packages/server/lib/plugins/preprocessor.js",
"./packages/server/lib/plugins/run_events.js",
- "./packages/server/lib/project_utils.ts",
- "./packages/server/lib/remote_states.ts",
"./packages/server/lib/reporter.js",
- "./packages/server/lib/routes-ct.ts",
- "./packages/server/lib/routes-e2e.ts",
- "./packages/server/lib/routes.ts",
- "./packages/server/lib/saved_state.ts",
"./packages/server/lib/screenshots.js",
- "./packages/server/lib/server-base.ts",
- "./packages/server/lib/server-ct.ts",
- "./packages/server/lib/server-e2e.ts",
- "./packages/server/lib/socket-base.ts",
- "./packages/server/lib/socket-e2e.ts",
- "./packages/server/lib/unhandled_exceptions.ts",
+ "./packages/server/lib/template_engine.js",
"./packages/server/lib/util/app_data.js",
"./packages/server/lib/util/chrome_policy_check.js",
"./packages/server/lib/util/cookies.ts",
- "./packages/server/lib/util/editors.ts",
- "./packages/server/lib/util/ensure-url.ts",
"./packages/server/lib/util/exit.js",
- "./packages/server/lib/util/file-opener.ts",
- "./packages/server/lib/util/fs.ts",
+ "./packages/server/lib/util/file.js",
"./packages/server/lib/util/glob.js",
"./packages/server/lib/util/proxy.ts",
"./packages/server/lib/util/requestedWithAndCredentialManager.ts",
@@ -958,6 +901,45 @@
],
"healthy": [
"./node_modules/@babel/code-frame/lib/index.js",
+ "./node_modules/@babel/compat-data/data/native-modules.json",
+ "./node_modules/@babel/compat-data/data/plugins.json",
+ "./node_modules/@babel/compat-data/native-modules.js",
+ "./node_modules/@babel/compat-data/plugins.js",
+ "./node_modules/@babel/core/lib/config/caching.js",
+ "./node_modules/@babel/core/lib/config/files/import.cjs",
+ "./node_modules/@babel/core/lib/config/files/index.js",
+ "./node_modules/@babel/core/lib/config/files/module-types.js",
+ "./node_modules/@babel/core/lib/config/files/package.js",
+ "./node_modules/@babel/core/lib/config/files/utils.js",
+ "./node_modules/@babel/core/lib/config/helpers/deep-array.js",
+ "./node_modules/@babel/core/lib/config/helpers/environment.js",
+ "./node_modules/@babel/core/lib/config/plugin.js",
+ "./node_modules/@babel/core/lib/config/printer.js",
+ "./node_modules/@babel/core/lib/config/resolve-targets.js",
+ "./node_modules/@babel/core/lib/config/util.js",
+ "./node_modules/@babel/core/lib/config/validation/option-assertions.js",
+ "./node_modules/@babel/core/lib/config/validation/options.js",
+ "./node_modules/@babel/core/lib/config/validation/plugins.js",
+ "./node_modules/@babel/core/lib/config/validation/removed.js",
+ "./node_modules/@babel/core/lib/errors/config-error.js",
+ "./node_modules/@babel/core/lib/errors/rewrite-stack-trace.js",
+ "./node_modules/@babel/core/lib/gensync-utils/async.js",
+ "./node_modules/@babel/core/lib/gensync-utils/functional.js",
+ "./node_modules/@babel/core/lib/index.js",
+ "./node_modules/@babel/core/lib/parse.js",
+ "./node_modules/@babel/core/lib/parser/index.js",
+ "./node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js",
+ "./node_modules/@babel/core/lib/transform-ast.js",
+ "./node_modules/@babel/core/lib/transform-file.js",
+ "./node_modules/@babel/core/lib/transform.js",
+ "./node_modules/@babel/core/lib/transformation/block-hoist-plugin.js",
+ "./node_modules/@babel/core/lib/transformation/file/generate.js",
+ "./node_modules/@babel/core/lib/transformation/file/merge-map.js",
+ "./node_modules/@babel/core/lib/transformation/index.js",
+ "./node_modules/@babel/core/lib/transformation/normalize-opts.js",
+ "./node_modules/@babel/core/lib/transformation/plugin-pass.js",
+ "./node_modules/@babel/core/lib/transformation/util/clone-deep.js",
+ "./node_modules/@babel/core/lib/vendor/import-meta-resolve.js",
"./node_modules/@babel/generator/lib/buffer.js",
"./node_modules/@babel/generator/lib/generators/base.js",
"./node_modules/@babel/generator/lib/generators/classes.js",
@@ -975,23 +957,37 @@
"./node_modules/@babel/generator/lib/node/parentheses.js",
"./node_modules/@babel/generator/lib/printer.js",
"./node_modules/@babel/generator/lib/source-map.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/util.js",
- "./node_modules/@babel/generator/node_modules/source-map/source-map.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/debug.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/filter-items.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/index.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/options.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/pretty.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/targets.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/utils.js",
+ "./node_modules/@babel/helper-environment-visitor/lib/index.js",
"./node_modules/@babel/helper-function-name/lib/index.js",
"./node_modules/@babel/helper-hoist-variables/lib/index.js",
+ "./node_modules/@babel/helper-module-imports/lib/import-builder.js",
+ "./node_modules/@babel/helper-module-imports/lib/import-injector.js",
+ "./node_modules/@babel/helper-module-imports/lib/index.js",
+ "./node_modules/@babel/helper-module-imports/lib/is-module.js",
+ "./node_modules/@babel/helper-module-transforms/lib/dynamic-import.js",
+ "./node_modules/@babel/helper-module-transforms/lib/get-module-name.js",
+ "./node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js",
+ "./node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js",
+ "./node_modules/@babel/helper-module-transforms/lib/rewrite-this.js",
+ "./node_modules/@babel/helper-simple-access/lib/index.js",
"./node_modules/@babel/helper-split-export-declaration/lib/index.js",
+ "./node_modules/@babel/helper-string-parser/lib/index.js",
"./node_modules/@babel/helper-validator-identifier/lib/identifier.js",
"./node_modules/@babel/helper-validator-identifier/lib/index.js",
"./node_modules/@babel/helper-validator-identifier/lib/keyword.js",
+ "./node_modules/@babel/helper-validator-option/lib/find-suggestion.js",
+ "./node_modules/@babel/helper-validator-option/lib/index.js",
+ "./node_modules/@babel/helper-validator-option/lib/validator.js",
+ "./node_modules/@babel/helpers/lib/helpers-generated.js",
+ "./node_modules/@babel/helpers/lib/helpers.js",
+ "./node_modules/@babel/helpers/lib/index.js",
"./node_modules/@babel/highlight/lib/index.js",
"./node_modules/@babel/parser/lib/index.js",
"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js",
@@ -1030,13 +1026,6 @@
"./node_modules/@babel/types/lib/asserts/assertNode.js",
"./node_modules/@babel/types/lib/asserts/generated/index.js",
"./node_modules/@babel/types/lib/ast-types/generated/index.js",
- "./node_modules/@babel/types/lib/builders/builder.js",
- "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
- "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
- "./node_modules/@babel/types/lib/builders/generated/index.js",
- "./node_modules/@babel/types/lib/builders/generated/uppercase.js",
- "./node_modules/@babel/types/lib/builders/react/buildChildren.js",
- "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
"./node_modules/@babel/types/lib/clone/clone.js",
"./node_modules/@babel/types/lib/clone/cloneDeep.js",
"./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js",
@@ -1051,21 +1040,13 @@
"./node_modules/@babel/types/lib/comments/removeComments.js",
"./node_modules/@babel/types/lib/constants/generated/index.js",
"./node_modules/@babel/types/lib/constants/index.js",
- "./node_modules/@babel/types/lib/converters/ensureBlock.js",
"./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js",
"./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js",
- "./node_modules/@babel/types/lib/converters/toBlock.js",
- "./node_modules/@babel/types/lib/converters/toComputedKey.js",
"./node_modules/@babel/types/lib/converters/toExpression.js",
"./node_modules/@babel/types/lib/converters/toIdentifier.js",
"./node_modules/@babel/types/lib/converters/toKeyAlias.js",
- "./node_modules/@babel/types/lib/converters/toSequenceExpression.js",
- "./node_modules/@babel/types/lib/converters/toStatement.js",
- "./node_modules/@babel/types/lib/converters/valueToNode.js",
- "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
"./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js",
"./node_modules/@babel/types/lib/modifications/inherits.js",
- "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
"./node_modules/@babel/types/lib/modifications/removeProperties.js",
"./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js",
"./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js",
@@ -1074,7 +1055,6 @@
"./node_modules/@babel/types/lib/traverse/traverse.js",
"./node_modules/@babel/types/lib/traverse/traverseFast.js",
"./node_modules/@babel/types/lib/utils/inherit.js",
- "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
"./node_modules/@babel/types/lib/utils/shallowEqual.js",
"./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js",
"./node_modules/@babel/types/lib/validators/generated/index.js",
@@ -1093,7 +1073,7 @@
"./node_modules/@babel/types/lib/validators/matchesPattern.js",
"./node_modules/@babel/types/lib/validators/react/isCompatTag.js",
"./node_modules/@babel/types/lib/validators/react/isReactComponent.js",
- "./node_modules/@babel/types/node_modules/to-fast-properties/index.js",
+ "./node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js",
@@ -1248,6 +1228,7 @@
"./node_modules/@jimp/png/dist/index.js",
"./node_modules/@jimp/utils/dist/index.js",
"./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js",
+ "./node_modules/@jridgewell/set-array/dist/set-array.umd.js",
"./node_modules/@kwsites/promise-deferred/dist/index.js",
"./node_modules/@nodelib/fs.scandir/out/constants.js",
"./node_modules/@nodelib/fs.scandir/out/index.js",
@@ -1410,7 +1391,21 @@
"./node_modules/braces/lib/parse.js",
"./node_modules/braces/lib/stringify.js",
"./node_modules/braces/lib/utils.js",
+ "./node_modules/browserslist/error.js",
+ "./node_modules/browserslist/index.js",
+ "./node_modules/browserslist/node.js",
+ "./node_modules/browserslist/parse.js",
"./node_modules/bytes/index.js",
+ "./node_modules/caniuse-lite/data/agents.js",
+ "./node_modules/caniuse-lite/data/browserVersions.js",
+ "./node_modules/caniuse-lite/data/browsers.js",
+ "./node_modules/caniuse-lite/dist/lib/statuses.js",
+ "./node_modules/caniuse-lite/dist/lib/supported.js",
+ "./node_modules/caniuse-lite/dist/unpacker/agents.js",
+ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js",
+ "./node_modules/caniuse-lite/dist/unpacker/browsers.js",
+ "./node_modules/caniuse-lite/dist/unpacker/feature.js",
+ "./node_modules/caniuse-lite/dist/unpacker/region.js",
"./node_modules/caseless/index.js",
"./node_modules/chalk/node_modules/ansi-styles/index.js",
"./node_modules/chalk/templates.js",
@@ -1526,6 +1521,7 @@
"./node_modules/compression/node_modules/ms/index.js",
"./node_modules/concat-map/index.js",
"./node_modules/content-type/index.js",
+ "./node_modules/convert-source-map/index.js",
"./node_modules/cookie-parser/index.js",
"./node_modules/cookie-parser/node_modules/cookie/index.js",
"./node_modules/cookie-signature/index.js",
@@ -1655,6 +1651,7 @@
"./node_modules/electron-packager/src/prune.js",
"./node_modules/electron-packager/src/targets.js",
"./node_modules/electron-packager/src/unzip.js",
+ "./node_modules/electron-to-chromium/versions.js",
"./node_modules/encodeurl/index.js",
"./node_modules/encoding/lib/encoding.js",
"./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js",
@@ -1684,6 +1681,17 @@
"./node_modules/escape-string-applescript/index.js",
"./node_modules/escape-string-regexp/index.js",
"./node_modules/esprima/dist/esprima.js",
+ "./node_modules/estree-to-babel/lib/comments.js",
+ "./node_modules/estree-to-babel/lib/estree-to-babel.js",
+ "./node_modules/estree-to-babel/lib/get-ast.js",
+ "./node_modules/estree-to-babel/lib/set-class-method.js",
+ "./node_modules/estree-to-babel/lib/set-class-private-name.js",
+ "./node_modules/estree-to-babel/lib/set-class-private-property.js",
+ "./node_modules/estree-to-babel/lib/set-literal.js",
+ "./node_modules/estree-to-babel/lib/traverse-object-expression.js",
+ "./node_modules/esutils/lib/ast.js",
+ "./node_modules/esutils/lib/keyword.js",
+ "./node_modules/esutils/lib/utils.js",
"./node_modules/etag/index.js",
"./node_modules/execa/index.js",
"./node_modules/execa/lib/command.js",
@@ -1900,6 +1908,7 @@
"./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js",
"./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js",
"./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js",
+ "./node_modules/gensync/index.js",
"./node_modules/get-own-enumerable-property-symbols/lib/index.js",
"./node_modules/get-package-info/lib/index.js",
"./node_modules/get-package-info/node_modules/debug/src/debug.js",
@@ -2245,6 +2254,11 @@
"./node_modules/json-buffer/index.js",
"./node_modules/json-schema/lib/validate.js",
"./node_modules/json-stringify-safe/stringify.js",
+ "./node_modules/json5/lib/index.js",
+ "./node_modules/json5/lib/parse.js",
+ "./node_modules/json5/lib/stringify.js",
+ "./node_modules/json5/lib/unicode.js",
+ "./node_modules/json5/lib/util.js",
"./node_modules/jsonlint/lib/jsonlint.js",
"./node_modules/jsprim/lib/jsprim.js",
"./node_modules/junk/index.js",
@@ -2460,6 +2474,7 @@
"./node_modules/mime-types/index.js",
"./node_modules/mime/types.json",
"./node_modules/mimic-response/index.js",
+ "./node_modules/min-indent/index.js",
"./node_modules/minimist/index.js",
"./node_modules/mkdirp/index.js",
"./node_modules/mocha-7.0.1/lib/browser/progress.js",
@@ -2599,6 +2614,8 @@
"./node_modules/node-forge/lib/forge.js",
"./node_modules/node-forge/lib/md.js",
"./node_modules/node-forge/lib/oids.js",
+ "./node_modules/node-releases/data/processed/envs.json",
+ "./node_modules/node-releases/data/release-schedule/release-schedule.json",
"./node_modules/normalize-package-data/lib/extract_description.js",
"./node_modules/normalize-package-data/lib/fixer.js",
"./node_modules/normalize-package-data/lib/make_warning.js",
@@ -3045,6 +3062,101 @@
"./node_modules/range-parser/index.js",
"./node_modules/raw-body/index.js",
"./node_modules/raw-body/node_modules/bytes/index.js",
+ "./node_modules/react-docgen/dist/Documentation.js",
+ "./node_modules/react-docgen/dist/handlers/componentDocblockHandler.js",
+ "./node_modules/react-docgen/dist/handlers/componentMethodsHandler.js",
+ "./node_modules/react-docgen/dist/handlers/componentMethodsJsDocHandler.js",
+ "./node_modules/react-docgen/dist/handlers/defaultPropsHandler.js",
+ "./node_modules/react-docgen/dist/handlers/displayNameHandler.js",
+ "./node_modules/react-docgen/dist/handlers/flowTypeHandler.js",
+ "./node_modules/react-docgen/dist/handlers/index.js",
+ "./node_modules/react-docgen/dist/handlers/propDocBlockHandler.js",
+ "./node_modules/react-docgen/dist/handlers/propTypeCompositionHandler.js",
+ "./node_modules/react-docgen/dist/handlers/propTypeHandler.js",
+ "./node_modules/react-docgen/dist/importer/ignoreImports.js",
+ "./node_modules/react-docgen/dist/resolver/findAllComponentDefinitions.js",
+ "./node_modules/react-docgen/dist/resolver/findAllExportedComponentDefinitions.js",
+ "./node_modules/react-docgen/dist/resolver/findExportedComponentDefinition.js",
+ "./node_modules/react-docgen/dist/resolver/index.js",
+ "./node_modules/react-docgen/dist/utils/docblock.js",
+ "./node_modules/react-docgen/dist/utils/expressionTo.js",
+ "./node_modules/react-docgen/dist/utils/flowUtilityTypes.js",
+ "./node_modules/react-docgen/dist/utils/getClassMemberValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getFlowType.js",
+ "./node_modules/react-docgen/dist/utils/getFlowTypeFromReactComponent.js",
+ "./node_modules/react-docgen/dist/utils/getMemberExpressionRoot.js",
+ "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getMemberValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getMembers.js",
+ "./node_modules/react-docgen/dist/utils/getMethodDocumentation.js",
+ "./node_modules/react-docgen/dist/utils/getNameOrValue.js",
+ "./node_modules/react-docgen/dist/utils/getParameterName.js",
+ "./node_modules/react-docgen/dist/utils/getPropType.js",
+ "./node_modules/react-docgen/dist/utils/getPropertyName.js",
+ "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getTSType.js",
+ "./node_modules/react-docgen/dist/utils/getTypeAnnotation.js",
+ "./node_modules/react-docgen/dist/utils/getTypeParameters.js",
+ "./node_modules/react-docgen/dist/utils/index.js",
+ "./node_modules/react-docgen/dist/utils/isDestructuringAssignment.js",
+ "./node_modules/react-docgen/dist/utils/isExportsOrModuleAssignment.js",
+ "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactChildrenElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactCloneElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactComponentClass.js",
+ "./node_modules/react-docgen/dist/utils/isReactComponentMethod.js",
+ "./node_modules/react-docgen/dist/utils/isReactCreateClassCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactCreateElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactModuleName.js",
+ "./node_modules/react-docgen/dist/utils/isRequiredPropType.js",
+ "./node_modules/react-docgen/dist/utils/isStatelessComponent.js",
+ "./node_modules/react-docgen/dist/utils/isUnreachableFlowType.js",
+ "./node_modules/react-docgen/dist/utils/match.js",
+ "./node_modules/react-docgen/dist/utils/normalizeClassDefinition.js",
+ "./node_modules/react-docgen/dist/utils/parseJsDoc.js",
+ "./node_modules/react-docgen/dist/utils/postProcessDocumentation.js",
+ "./node_modules/react-docgen/dist/utils/printValue.js",
+ "./node_modules/react-docgen/dist/utils/resolveExportDeclaration.js",
+ "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js",
+ "./node_modules/react-docgen/dist/utils/resolveGenericTypeAnnotation.js",
+ "./node_modules/react-docgen/dist/utils/resolveHOC.js",
+ "./node_modules/react-docgen/dist/utils/resolveObjectKeysToArray.js",
+ "./node_modules/react-docgen/dist/utils/resolveObjectValuesToArray.js",
+ "./node_modules/react-docgen/dist/utils/resolveToModule.js",
+ "./node_modules/react-docgen/dist/utils/resolveToValue.js",
+ "./node_modules/react-docgen/dist/utils/setPropDescription.js",
+ "./node_modules/react-docgen/dist/utils/traverse.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/babel-core.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/babel.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/core-operators.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/core.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es-proposals.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2016.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2017.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2018.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2019.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2020.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es6.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/esprima.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/flow.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/jsx.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/type-annotations.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/typescript.js",
+ "./node_modules/react-docgen/node_modules/ast-types/fork.js",
+ "./node_modules/react-docgen/node_modules/ast-types/gen/namedTypes.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/equiv.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/node-path.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/path-visitor.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/path.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/scope.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/shared.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/types.js",
+ "./node_modules/react-docgen/node_modules/ast-types/main.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/doctrine.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/typed.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/utility.js",
+ "./node_modules/react-docgen/node_modules/doctrine/package.json",
"./node_modules/readable-stream/lib/internal/streams/destroy.js",
"./node_modules/recast/node_modules/ast-types/def/babel-core.js",
"./node_modules/recast/node_modules/ast-types/def/babel.js",
@@ -3224,6 +3336,7 @@
"./node_modules/strip-bom/index.js",
"./node_modules/strip-eof/index.js",
"./node_modules/strip-final-newline/index.js",
+ "./node_modules/strip-indent/index.js",
"./node_modules/strip-outer/index.js",
"./node_modules/sumchecker/index.js",
"./node_modules/supports-color/node_modules/has-flag/index.js",
@@ -3264,6 +3377,7 @@
"./node_modules/through/index.js",
"./node_modules/timm/lib/timm.js",
"./node_modules/tinycolor2/tinycolor.js",
+ "./node_modules/to-fast-properties/index.js",
"./node_modules/to-readable-stream/index.js",
"./node_modules/to-regex-range/index.js",
"./node_modules/to-regex-range/node_modules/is-number/index.js",
@@ -3508,8 +3622,80 @@
"./packages/config/node_modules/@babel/traverse/lib/scope/lib/renamer.js",
"./packages/config/node_modules/@babel/traverse/lib/visitors.js",
"./packages/config/src/ast-utils/astConfigHelpers.ts",
+ "./packages/config/src/browser.ts",
+ "./packages/config/src/index.ts",
+ "./packages/config/src/project/index.ts",
+ "./packages/config/src/project/utils.ts",
"./packages/config/src/utils.ts",
+ "./packages/config/src/validation.ts",
"./packages/data-context/node_modules/@babel/code-frame/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/buffer.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/base.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/classes.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/expressions.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/flow.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/jsx.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/methods.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/modules.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/statements.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/template-literals.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/types.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/typescript.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/parentheses.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/printer.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/source-map.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/assertNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/ast-types/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/clone.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeep.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComment.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritInnerComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritLeadingComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritTrailingComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritsComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/removeComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/constants/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/constants/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toIdentifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toKeyAlias.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/inherits.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removeProperties.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverse.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverseFast.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/inherit.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/shallowEqual.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBinding.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBlockScoped.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isImmutable.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isLet.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNodesEquivalent.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isReferenced.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isScope.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isSpecifierDefault.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidES3Identifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidIdentifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isVar.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/matchesPattern.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js",
"./packages/data-context/node_modules/@babel/parser/lib/index.js",
"./packages/data-context/node_modules/anymatch/index.js",
"./packages/data-context/node_modules/cross-spawn/index.js",
@@ -3551,6 +3737,17 @@
"./packages/data-context/node_modules/fs-extra/lib/util/utimes.js",
"./packages/data-context/node_modules/micromatch/index.js",
"./packages/data-context/node_modules/path-key/index.js",
+ "./packages/data-context/node_modules/source-map/lib/array-set.js",
+ "./packages/data-context/node_modules/source-map/lib/base64-vlq.js",
+ "./packages/data-context/node_modules/source-map/lib/base64.js",
+ "./packages/data-context/node_modules/source-map/lib/binary-search.js",
+ "./packages/data-context/node_modules/source-map/lib/mapping-list.js",
+ "./packages/data-context/node_modules/source-map/lib/quick-sort.js",
+ "./packages/data-context/node_modules/source-map/lib/source-map-consumer.js",
+ "./packages/data-context/node_modules/source-map/lib/source-map-generator.js",
+ "./packages/data-context/node_modules/source-map/lib/source-node.js",
+ "./packages/data-context/node_modules/source-map/lib/util.js",
+ "./packages/data-context/node_modules/source-map/source-map.js",
"./packages/data-context/src/actions/AppActions.ts",
"./packages/data-context/src/actions/AuthActions.ts",
"./packages/data-context/src/actions/BrowserActions.ts",
@@ -3558,28 +3755,44 @@
"./packages/data-context/src/actions/DevActions.ts",
"./packages/data-context/src/actions/ElectronActions.ts",
"./packages/data-context/src/actions/ErrorActions.ts",
+ "./packages/data-context/src/actions/EventCollectorActions.ts",
"./packages/data-context/src/actions/FileActions.ts",
"./packages/data-context/src/actions/LocalSettingsActions.ts",
"./packages/data-context/src/actions/ProjectActions.ts",
"./packages/data-context/src/actions/VersionsActions.ts",
+ "./packages/data-context/src/actions/WizardActions.ts",
+ "./packages/data-context/src/codegen/code-generator.ts",
"./packages/data-context/src/codegen/spec-options.ts",
"./packages/data-context/src/data/CypressEnv.ts",
+ "./packages/data-context/src/data/EventRegistrar.ts",
+ "./packages/data-context/src/data/ProjectConfigManager.ts",
"./packages/data-context/src/data/ProjectLifecycleManager.ts",
"./packages/data-context/src/data/coreDataShape.ts",
"./packages/data-context/src/gen/urql-introspection.gen.ts",
+ "./packages/data-context/src/sources/CloudDataSource.ts",
"./packages/data-context/src/sources/EnvDataSource.ts",
"./packages/data-context/src/sources/ErrorDataSource.ts",
+ "./packages/data-context/src/sources/FileDataSource.ts",
+ "./packages/data-context/src/sources/GitDataSource.ts",
+ "./packages/data-context/src/sources/GraphQLDataSource.ts",
+ "./packages/data-context/src/sources/HtmlDataSource.ts",
+ "./packages/data-context/src/sources/ProjectDataSource.ts",
+ "./packages/data-context/src/sources/RemotePollingDataSource.ts",
"./packages/data-context/src/sources/RemoteRequestDataSource.ts",
"./packages/data-context/src/sources/UtilDataSource.ts",
+ "./packages/data-context/src/sources/VersionsDataSource.ts",
"./packages/data-context/src/sources/WizardDataSource.ts",
"./packages/data-context/src/sources/migration/legacyOptions.ts",
"./packages/data-context/src/sources/migration/parserUtils.ts",
"./packages/data-context/src/sources/migration/regexps.ts",
+ "./packages/data-context/src/sources/migration/utils.ts",
"./packages/data-context/src/util/DocumentNodeBuilder.ts",
"./packages/data-context/src/util/autoBindDebug.ts",
"./packages/data-context/src/util/cached.ts",
+ "./packages/data-context/src/util/config-file-updater.ts",
"./packages/data-context/src/util/file.ts",
"./packages/data-context/src/util/hasTypescript.ts",
+ "./packages/data-context/src/util/index.ts",
"./packages/data-context/src/util/pluginHandlers.ts",
"./packages/data-context/src/util/urqlCacheKeys.ts",
"./packages/data-context/src/util/weightedChoice.ts",
@@ -3625,21 +3838,87 @@
"./packages/graphql/node_modules/ws/lib/subprotocol.js",
"./packages/graphql/node_modules/ws/lib/validation.js",
"./packages/graphql/src/index.ts",
+ "./packages/graphql/src/plugins/index.ts",
+ "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts",
+ "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts",
+ "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts",
+ "./packages/graphql/src/plugins/nexusNodePlugin.ts",
+ "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts",
+ "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts",
+ "./packages/graphql/src/schema.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentDescriptor.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts",
+ "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts",
+ "./packages/graphql/src/schemaTypes/unions/index.ts",
+ "./packages/graphql/src/stitching/remoteSchema.ts",
"./packages/https-proxy/lib/proxy.js",
"./packages/https-proxy/lib/server.js",
"./packages/https-proxy/lib/util/parse.js",
"./packages/https-proxy/test/helpers/https_server.js",
"./packages/launcher/index.ts",
+ "./packages/launcher/lib/browsers.ts",
+ "./packages/launcher/lib/darwin/index.ts",
+ "./packages/launcher/lib/darwin/util.ts",
+ "./packages/launcher/lib/detect.ts",
"./packages/launcher/lib/errors.ts",
+ "./packages/launcher/lib/linux/index.ts",
"./packages/launcher/lib/types.ts",
"./packages/launcher/lib/utils.ts",
+ "./packages/launcher/lib/windows/index.ts",
"./packages/launcher/node_modules/which/which.js",
"./packages/net-stubbing/lib/external-types.ts",
+ "./packages/net-stubbing/lib/internal-types.ts",
+ "./packages/net-stubbing/lib/server/driver-events.ts",
"./packages/net-stubbing/lib/server/index.ts",
"./packages/net-stubbing/lib/server/intercepted-request.ts",
+ "./packages/net-stubbing/lib/server/middleware/error.ts",
+ "./packages/net-stubbing/lib/server/middleware/request.ts",
+ "./packages/net-stubbing/lib/server/middleware/response.ts",
"./packages/net-stubbing/lib/server/route-matching.ts",
"./packages/net-stubbing/lib/server/state.ts",
"./packages/net-stubbing/lib/server/types.ts",
+ "./packages/net-stubbing/lib/server/util.ts",
+ "./packages/net-stubbing/lib/types.ts",
"./packages/net-stubbing/lib/util.ts",
"./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js",
"./packages/net-stubbing/node_modules/debug/src/common.js",
@@ -3649,10 +3928,17 @@
"./packages/network/lib/allow-destroy.ts",
"./packages/network/lib/blocked.ts",
"./packages/network/lib/ca.ts",
+ "./packages/network/lib/client-certificates.ts",
"./packages/network/lib/concat-stream.ts",
+ "./packages/network/lib/connect.ts",
+ "./packages/network/lib/cors.ts",
"./packages/network/lib/http-utils.ts",
"./packages/network/lib/index.ts",
+ "./packages/network/lib/uri.ts",
+ "./packages/proxy/lib/http/error-middleware.ts",
+ "./packages/proxy/lib/http/request-middleware.ts",
"./packages/proxy/lib/http/util/ast-rewriter.ts",
+ "./packages/proxy/lib/http/util/buffers.ts",
"./packages/proxy/lib/http/util/cookies.ts",
"./packages/proxy/lib/http/util/inject.ts",
"./packages/proxy/lib/http/util/replace_stream.ts",
@@ -3681,10 +3967,12 @@
"./packages/resolve-dist/lib/index.ts",
"./packages/rewriter/lib/async-rewriters.ts",
"./packages/rewriter/lib/constants.json",
+ "./packages/rewriter/lib/deferred-source-map-cache.ts",
"./packages/rewriter/lib/html-rules.ts",
"./packages/rewriter/lib/html.ts",
"./packages/rewriter/lib/index.ts",
"./packages/rewriter/lib/js-rules.ts",
+ "./packages/rewriter/lib/js.ts",
"./packages/rewriter/lib/util/source-maps.ts",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js",
"./packages/rewriter/node_modules/parse5/lib/common/doctype.js",
@@ -3704,19 +3992,25 @@
"./packages/scaffold-config/src/commandFile.ts",
"./packages/scaffold-config/src/component-index-template.ts",
"./packages/scaffold-config/src/dependencies.ts",
+ "./packages/scaffold-config/src/detect.ts",
"./packages/scaffold-config/src/frameworks.ts",
+ "./packages/scaffold-config/src/index.ts",
"./packages/scaffold-config/src/supportFile.ts",
"./packages/server/config/app.json",
"./packages/server/lib/automation/automation.ts",
+ "./packages/server/lib/automation/cookies.ts",
"./packages/server/lib/automation/index.ts",
"./packages/server/lib/automation/screenshot.ts",
"./packages/server/lib/automation/util.ts",
"./packages/server/lib/browsers/protocol.ts",
+ "./packages/server/lib/browsers/webkit-automation.ts",
+ "./packages/server/lib/browsers/webkit.ts",
"./packages/server/lib/cloud/machine_id.js",
- "./packages/server/lib/cloud/upload.ts",
"./packages/server/lib/cohorts.ts",
+ "./packages/server/lib/config.ts",
"./packages/server/lib/controllers/client.js",
"./packages/server/lib/controllers/files.js",
+ "./packages/server/lib/controllers/iframes.ts",
"./packages/server/lib/controllers/reporter.js",
"./packages/server/lib/controllers/runner.ts",
"./packages/server/lib/controllers/spec.js",
@@ -3725,33 +4019,47 @@
"./packages/server/lib/exec.js",
"./packages/server/lib/experiments.ts",
"./packages/server/lib/file_server.js",
- "./packages/server/lib/files.js",
- "./packages/server/lib/fixture.js",
"./packages/server/lib/gui/links.ts",
"./packages/server/lib/gui/menu.js",
+ "./packages/server/lib/gui/windows.ts",
+ "./packages/server/lib/makeDataContext.ts",
"./packages/server/lib/modes/exit.js",
"./packages/server/lib/modes/index.ts",
- "./packages/server/lib/modes/info.js",
+ "./packages/server/lib/modes/interactive.ts",
"./packages/server/lib/modes/pkg.js",
"./packages/server/lib/modes/smoke_test.js",
"./packages/server/lib/override_require.ts",
"./packages/server/lib/plugins/index.ts",
+ "./packages/server/lib/project_utils.ts",
+ "./packages/server/lib/remote_states.ts",
"./packages/server/lib/request.js",
+ "./packages/server/lib/routes-ct.ts",
+ "./packages/server/lib/routes-e2e.ts",
+ "./packages/server/lib/routes.ts",
+ "./packages/server/lib/saved_state.ts",
+ "./packages/server/lib/server-base.ts",
+ "./packages/server/lib/server-ct.ts",
+ "./packages/server/lib/server-e2e.ts",
"./packages/server/lib/session.ts",
+ "./packages/server/lib/socket-base.ts",
+ "./packages/server/lib/socket-e2e.ts",
"./packages/server/lib/studio.ts",
"./packages/server/lib/task.js",
- "./packages/server/lib/template_engine.js",
+ "./packages/server/lib/unhandled_exceptions.ts",
"./packages/server/lib/util/args.js",
"./packages/server/lib/util/cache_buster.js",
"./packages/server/lib/util/ci_provider.js",
"./packages/server/lib/util/class-helpers.ts",
"./packages/server/lib/util/duration.js",
+ "./packages/server/lib/util/editors.ts",
"./packages/server/lib/util/electron-app.js",
+ "./packages/server/lib/util/ensure-url.ts",
"./packages/server/lib/util/env-editors.ts",
"./packages/server/lib/util/env.js",
"./packages/server/lib/util/escape_filename.ts",
- "./packages/server/lib/util/file.js",
+ "./packages/server/lib/util/file-opener.ts",
"./packages/server/lib/util/find_process.js",
+ "./packages/server/lib/util/fs.ts",
"./packages/server/lib/util/get-windows-proxy.js",
"./packages/server/lib/util/headers.js",
"./packages/server/lib/util/human_time.js",
@@ -3763,17 +4071,19 @@
"./packages/server/lib/util/patch-fs.ts",
"./packages/server/lib/util/performance_benchmark.js",
"./packages/server/lib/util/print-run.ts",
- "./packages/server/lib/util/profile_cleaner.js",
+ "./packages/server/lib/util/proxy.ts",
"./packages/server/lib/util/random.js",
+ "./packages/server/lib/util/resourceTypeAndCredentialManager.ts",
"./packages/server/lib/util/server_destroy.ts",
"./packages/server/lib/util/shell.js",
+ "./packages/server/lib/util/socket_allowed.ts",
"./packages/server/lib/util/spec_writer.ts",
"./packages/server/lib/util/status_code.js",
+ "./packages/server/lib/util/stream_buffer.ts",
"./packages/server/lib/util/system.js",
"./packages/server/lib/util/terminal-size.js",
"./packages/server/lib/util/terminal.js",
"./packages/server/lib/util/tests_utils.ts",
- "./packages/server/lib/util/trash.js",
"./packages/server/lib/util/tty.js",
"./packages/server/node_modules/@babel/parser/lib/index.js",
"./packages/server/node_modules/@benmalka/foxdriver/build/index.js",
diff --git a/tooling/v8-snapshot/cache/linux/snapshot-meta.json b/tooling/v8-snapshot/cache/linux/snapshot-meta.json
index b24d6838dc28..55056f4457d6 100644
--- a/tooling/v8-snapshot/cache/linux/snapshot-meta.json
+++ b/tooling/v8-snapshot/cache/linux/snapshot-meta.json
@@ -4,6 +4,13 @@
"./get-stream/buffer-stream.js",
"./graceful-fs/polyfills.js",
"./lockfile/lockfile.js",
+ "./node_modules/@babel/traverse/lib/index.js",
+ "./node_modules/@babel/traverse/lib/path/comments.js",
+ "./node_modules/@babel/traverse/lib/path/conversion.js",
+ "./node_modules/@babel/traverse/lib/path/family.js",
+ "./node_modules/@babel/traverse/lib/path/introspection.js",
+ "./node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js",
+ "./node_modules/@babel/types/lib/definitions/core.js",
"./node_modules/@cspotcode/source-map-support/source-map-support.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/node.js",
"./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js",
@@ -40,16 +47,15 @@
"./node_modules/tcp-port-used/node_modules/debug/src/node.js",
"./node_modules/trash/node_modules/make-dir/index.js",
"./node_modules/utif/UTIF.js",
- "./packages/config/node_modules/@babel/traverse/lib/path/comments.js",
- "./packages/config/node_modules/@babel/traverse/lib/path/conversion.js",
- "./packages/config/node_modules/@babel/traverse/lib/path/family.js",
- "./packages/config/node_modules/@babel/traverse/lib/path/introspection.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/core.js",
"./packages/data-context/node_modules/debug/src/node.js",
"./packages/data-context/node_modules/minimatch/minimatch.js",
"./packages/graphql/node_modules/debug/src/node.js",
"./packages/https-proxy/lib/ca.js",
"./packages/net-stubbing/node_modules/debug/src/node.js",
"./packages/network/node_modules/minimatch/minimatch.js",
+ "./packages/proxy/lib/http/util/prerequests.ts",
+ "./packages/server/lib/browsers/index.ts",
"./packages/server/lib/browsers/utils.ts",
"./packages/server/lib/capture.js",
"./packages/server/lib/cloud/exception.ts",
@@ -73,9 +79,48 @@
"./ws/lib/websocket.js"
],
"deferred": [
+ "./node_modules/@ampproject/remapping/dist/remapping.umd.js",
+ "./node_modules/@babel/core/lib/config/config-chain.js",
+ "./node_modules/@babel/core/lib/config/config-descriptors.js",
+ "./node_modules/@babel/core/lib/config/files/configuration.js",
+ "./node_modules/@babel/core/lib/config/files/import-meta-resolve.js",
+ "./node_modules/@babel/core/lib/config/files/plugins.js",
+ "./node_modules/@babel/core/lib/config/full.js",
+ "./node_modules/@babel/core/lib/config/helpers/config-api.js",
+ "./node_modules/@babel/core/lib/config/index.js",
+ "./node_modules/@babel/core/lib/config/item.js",
+ "./node_modules/@babel/core/lib/config/partial.js",
+ "./node_modules/@babel/core/lib/config/pattern-to-regex.js",
+ "./node_modules/@babel/core/lib/gensync-utils/fs.js",
+ "./node_modules/@babel/core/lib/tools/build-external-helpers.js",
+ "./node_modules/@babel/core/lib/transformation/file/file.js",
+ "./node_modules/@babel/core/lib/transformation/normalize-file.js",
+ "./node_modules/@babel/core/node_modules/semver/semver.js",
"./node_modules/@babel/generator/lib/node/index.js",
"./node_modules/@babel/generator/lib/node/whitespace.js",
- "./node_modules/@babel/types/lib/definitions/core.js",
+ "./node_modules/@babel/helper-compilation-targets/node_modules/semver/semver.js",
+ "./node_modules/@babel/helper-module-transforms/lib/index.js",
+ "./node_modules/@babel/traverse/lib/context.js",
+ "./node_modules/@babel/traverse/lib/path/context.js",
+ "./node_modules/@babel/traverse/lib/path/index.js",
+ "./node_modules/@babel/traverse/lib/path/modification.js",
+ "./node_modules/@babel/traverse/lib/path/removal.js",
+ "./node_modules/@babel/traverse/lib/path/replacement.js",
+ "./node_modules/@babel/traverse/lib/scope/index.js",
+ "./node_modules/@babel/traverse/lib/traverse-node.js",
+ "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
+ "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
+ "./node_modules/@babel/types/lib/builders/generated/index.js",
+ "./node_modules/@babel/types/lib/builders/generated/uppercase.js",
+ "./node_modules/@babel/types/lib/builders/react/buildChildren.js",
+ "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
+ "./node_modules/@babel/types/lib/builders/validateNode.js",
+ "./node_modules/@babel/types/lib/converters/ensureBlock.js",
+ "./node_modules/@babel/types/lib/converters/toBlock.js",
+ "./node_modules/@babel/types/lib/converters/toComputedKey.js",
+ "./node_modules/@babel/types/lib/converters/toSequenceExpression.js",
+ "./node_modules/@babel/types/lib/converters/toStatement.js",
+ "./node_modules/@babel/types/lib/converters/valueToNode.js",
"./node_modules/@babel/types/lib/definitions/experimental.js",
"./node_modules/@babel/types/lib/definitions/flow.js",
"./node_modules/@babel/types/lib/definitions/index.js",
@@ -85,10 +130,14 @@
"./node_modules/@babel/types/lib/definitions/typescript.js",
"./node_modules/@babel/types/lib/definitions/utils.js",
"./node_modules/@babel/types/lib/index.js",
+ "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
+ "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
+ "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
"./node_modules/@babel/types/lib/validators/is.js",
"./node_modules/@babel/types/lib/validators/isPlaceholderType.js",
"./node_modules/@babel/types/lib/validators/isType.js",
"./node_modules/@babel/types/lib/validators/validate.js",
+ "./node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/index.js",
"./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js",
@@ -133,6 +182,7 @@
"./node_modules/@jimp/plugins/dist/index.js",
"./node_modules/@jimp/tiff/dist/index.js",
"./node_modules/@jimp/types/dist/index.js",
+ "./node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js",
"./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js",
"./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js",
"./node_modules/@kwsites/file-exists/dist/index.js",
@@ -212,6 +262,7 @@
"./node_modules/compression/node_modules/safe-buffer/index.js",
"./node_modules/concat-stream/index.js",
"./node_modules/config-chain/index.js",
+ "./node_modules/convert-source-map/node_modules/safe-buffer/index.js",
"./node_modules/cp-file/cp-file-error.js",
"./node_modules/cp-file/fs.js",
"./node_modules/cp-file/progress-emitter.js",
@@ -243,6 +294,7 @@
"./node_modules/encoding/node_modules/iconv-lite/encodings/index.js",
"./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js",
"./node_modules/encoding/node_modules/iconv-lite/lib/index.js",
+ "./node_modules/esutils/lib/code.js",
"./node_modules/evil-dns/evil-dns.js",
"./node_modules/execa/node_modules/get-stream/buffer-stream.js",
"./node_modules/express-graphql/index.js",
@@ -487,6 +539,11 @@
"./node_modules/pseudomap/map.js",
"./node_modules/pumpify/index.js",
"./node_modules/queue/index.js",
+ "./node_modules/react-docgen/dist/babelParser.js",
+ "./node_modules/react-docgen/dist/importer/index.js",
+ "./node_modules/react-docgen/dist/importer/makeFsImporter.js",
+ "./node_modules/react-docgen/dist/main.js",
+ "./node_modules/react-docgen/dist/parse.js",
"./node_modules/readable-stream/lib/_stream_duplex.js",
"./node_modules/readable-stream/lib/_stream_passthrough.js",
"./node_modules/readable-stream/lib/_stream_readable.js",
@@ -621,21 +678,48 @@
"./packages/config/node_modules/@babel/traverse/lib/context.js",
"./packages/config/node_modules/@babel/traverse/lib/index.js",
"./packages/config/node_modules/@babel/traverse/lib/path/ancestry.js",
+ "./packages/config/node_modules/@babel/traverse/lib/path/comments.js",
"./packages/config/node_modules/@babel/traverse/lib/path/context.js",
+ "./packages/config/node_modules/@babel/traverse/lib/path/conversion.js",
+ "./packages/config/node_modules/@babel/traverse/lib/path/family.js",
"./packages/config/node_modules/@babel/traverse/lib/path/index.js",
+ "./packages/config/node_modules/@babel/traverse/lib/path/introspection.js",
"./packages/config/node_modules/@babel/traverse/lib/path/modification.js",
"./packages/config/node_modules/@babel/traverse/lib/path/removal.js",
"./packages/config/node_modules/@babel/traverse/lib/path/replacement.js",
- "./packages/config/node_modules/@babel/traverse/lib/scope/index.js",
- "./packages/config/src/ast-utils/addToCypressConfig.ts",
- "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts",
- "./packages/config/src/browser.ts",
- "./packages/config/src/index.ts",
"./packages/config/src/options.ts",
- "./packages/config/src/project/index.ts",
- "./packages/config/src/project/utils.ts",
- "./packages/config/src/validation.ts",
"./packages/data-context/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/whitespace.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/validateNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/ensureBlock.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBlock.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toComputedKey.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toSequenceExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toStatement.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/valueToNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/experimental.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/flow.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/jsx.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/misc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/placeholders.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/typescript.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/utils.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/is.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isPlaceholderType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/validate.js",
"./packages/data-context/node_modules/chokidar/index.js",
"./packages/data-context/node_modules/chokidar/lib/constants.js",
"./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js",
@@ -654,39 +738,23 @@
"./packages/data-context/src/DataActions.ts",
"./packages/data-context/src/DataContext.ts",
"./packages/data-context/src/actions/DataEmitterActions.ts",
- "./packages/data-context/src/actions/EventCollectorActions.ts",
"./packages/data-context/src/actions/MigrationActions.ts",
- "./packages/data-context/src/actions/WizardActions.ts",
"./packages/data-context/src/actions/index.ts",
- "./packages/data-context/src/codegen/code-generator.ts",
"./packages/data-context/src/codegen/index.ts",
"./packages/data-context/src/codegen/templates.ts",
- "./packages/data-context/src/data/EventRegistrar.ts",
"./packages/data-context/src/data/LegacyPluginsIpc.ts",
"./packages/data-context/src/data/ProjectConfigIpc.ts",
- "./packages/data-context/src/data/ProjectConfigManager.ts",
"./packages/data-context/src/data/index.ts",
"./packages/data-context/src/globalPubSub.ts",
"./packages/data-context/src/index.ts",
"./packages/data-context/src/sources/BrowserDataSource.ts",
- "./packages/data-context/src/sources/CloudDataSource.ts",
- "./packages/data-context/src/sources/FileDataSource.ts",
- "./packages/data-context/src/sources/GitDataSource.ts",
- "./packages/data-context/src/sources/GraphQLDataSource.ts",
- "./packages/data-context/src/sources/HtmlDataSource.ts",
"./packages/data-context/src/sources/MigrationDataSource.ts",
- "./packages/data-context/src/sources/ProjectDataSource.ts",
- "./packages/data-context/src/sources/RemotePollingDataSource.ts",
- "./packages/data-context/src/sources/VersionsDataSource.ts",
"./packages/data-context/src/sources/index.ts",
"./packages/data-context/src/sources/migration/autoRename.ts",
"./packages/data-context/src/sources/migration/codegen.ts",
"./packages/data-context/src/sources/migration/format.ts",
"./packages/data-context/src/sources/migration/index.ts",
"./packages/data-context/src/sources/migration/shouldShowSteps.ts",
- "./packages/data-context/src/sources/migration/utils.ts",
- "./packages/data-context/src/util/config-file-updater.ts",
- "./packages/data-context/src/util/index.ts",
"./packages/electron/index.js",
"./packages/electron/lib/electron.js",
"./packages/electron/node_modules/get-stream/buffer-stream.js",
@@ -706,102 +774,29 @@
"./packages/graphql/node_modules/ws/lib/websocket-server.js",
"./packages/graphql/node_modules/ws/lib/websocket.js",
"./packages/graphql/src/makeGraphQLServer.ts",
- "./packages/graphql/src/plugins/index.ts",
- "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts",
- "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts",
- "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts",
- "./packages/graphql/src/plugins/nexusNodePlugin.ts",
- "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts",
- "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts",
- "./packages/graphql/src/schema.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/index.ts",
"./packages/graphql/src/schemaTypes/index.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/index.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-GenerateSpecResponse.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Migration.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Subscription.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts",
"./packages/graphql/src/schemaTypes/objectTypes/index.ts",
"./packages/graphql/src/schemaTypes/scalarTypes/gql-customScalars.ts",
"./packages/graphql/src/schemaTypes/scalarTypes/index.ts",
- "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts",
- "./packages/graphql/src/schemaTypes/unions/index.ts",
- "./packages/graphql/src/stitching/remoteSchema.ts",
"./packages/graphql/src/stitching/remoteSchemaWrapped.ts",
"./packages/https-proxy/index.js",
"./packages/https-proxy/test/helpers/certs.js",
"./packages/icons/dist/icons.js",
"./packages/icons/index.js",
- "./packages/launcher/lib/browsers.ts",
- "./packages/launcher/lib/darwin/index.ts",
- "./packages/launcher/lib/darwin/util.ts",
- "./packages/launcher/lib/detect.ts",
- "./packages/launcher/lib/linux/index.ts",
- "./packages/launcher/lib/windows/index.ts",
- "./packages/net-stubbing/lib/internal-types.ts",
- "./packages/net-stubbing/lib/server/driver-events.ts",
- "./packages/net-stubbing/lib/server/middleware/error.ts",
- "./packages/net-stubbing/lib/server/middleware/request.ts",
- "./packages/net-stubbing/lib/server/middleware/response.ts",
- "./packages/net-stubbing/lib/server/util.ts",
- "./packages/net-stubbing/lib/types.ts",
"./packages/net-stubbing/node_modules/debug/src/browser.js",
"./packages/net-stubbing/node_modules/debug/src/index.js",
"./packages/net-stubbing/node_modules/supports-color/index.js",
"./packages/network/index.js",
"./packages/network/lib/agent.ts",
- "./packages/network/lib/client-certificates.ts",
- "./packages/network/lib/connect.ts",
- "./packages/network/lib/cors.ts",
- "./packages/network/lib/uri.ts",
"./packages/proxy/index.js",
- "./packages/proxy/lib/http/error-middleware.ts",
"./packages/proxy/lib/http/index.ts",
- "./packages/proxy/lib/http/request-middleware.ts",
"./packages/proxy/lib/http/response-middleware.ts",
- "./packages/proxy/lib/http/util/buffers.ts",
- "./packages/proxy/lib/http/util/prerequests.ts",
"./packages/proxy/lib/http/util/regex-rewriter.ts",
"./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js",
"./packages/proxy/node_modules/iconv-lite/encodings/index.js",
@@ -809,70 +804,41 @@
"./packages/proxy/node_modules/iconv-lite/lib/index.js",
"./packages/resolve-dist/index.js",
"./packages/rewriter/index.js",
- "./packages/rewriter/lib/deferred-source-map-cache.ts",
- "./packages/rewriter/lib/js.ts",
"./packages/rewriter/lib/threads/index.ts",
"./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js",
"./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js",
"./packages/scaffold-config/index.js",
- "./packages/scaffold-config/src/detect.ts",
- "./packages/scaffold-config/src/index.ts",
- "./packages/server/lib/automation/cookies.ts",
- "./packages/server/lib/browsers/browser-cri-client.ts",
- "./packages/server/lib/browsers/cdp_automation.ts",
"./packages/server/lib/browsers/chrome.ts",
- "./packages/server/lib/browsers/cri-client.ts",
- "./packages/server/lib/browsers/electron.ts",
- "./packages/server/lib/browsers/firefox-util.ts",
"./packages/server/lib/browsers/firefox.ts",
- "./packages/server/lib/browsers/index.ts",
- "./packages/server/lib/browsers/webkit-automation.ts",
- "./packages/server/lib/browsers/webkit.ts",
"./packages/server/lib/cache.js",
"./packages/server/lib/cloud/api.ts",
"./packages/server/lib/cloud/auth.ts",
"./packages/server/lib/cloud/routes.ts",
+ "./packages/server/lib/cloud/upload.ts",
"./packages/server/lib/cloud/user.ts",
- "./packages/server/lib/config.ts",
- "./packages/server/lib/controllers/iframes.ts",
"./packages/server/lib/cypress.js",
"./packages/server/lib/environment.js",
- "./packages/server/lib/gui/windows.ts",
+ "./packages/server/lib/files.js",
+ "./packages/server/lib/fixture.js",
"./packages/server/lib/log.js",
"./packages/server/lib/makeDataContext.ts",
"./packages/server/lib/modes/interactive.ts",
"./packages/server/lib/plugins/dev-server.js",
"./packages/server/lib/plugins/preprocessor.js",
"./packages/server/lib/plugins/run_events.js",
- "./packages/server/lib/project_utils.ts",
- "./packages/server/lib/remote_states.ts",
"./packages/server/lib/reporter.js",
- "./packages/server/lib/routes-ct.ts",
- "./packages/server/lib/routes-e2e.ts",
- "./packages/server/lib/routes.ts",
- "./packages/server/lib/saved_state.ts",
"./packages/server/lib/screenshots.js",
- "./packages/server/lib/server-base.ts",
- "./packages/server/lib/server-ct.ts",
- "./packages/server/lib/server-e2e.ts",
- "./packages/server/lib/socket-base.ts",
- "./packages/server/lib/socket-e2e.ts",
- "./packages/server/lib/unhandled_exceptions.ts",
+ "./packages/server/lib/template_engine.js",
"./packages/server/lib/util/app_data.js",
"./packages/server/lib/util/chrome_policy_check.js",
"./packages/server/lib/util/cookies.ts",
- "./packages/server/lib/util/editors.ts",
- "./packages/server/lib/util/ensure-url.ts",
"./packages/server/lib/util/exit.js",
- "./packages/server/lib/util/file-opener.ts",
- "./packages/server/lib/util/fs.ts",
+ "./packages/server/lib/util/file.js",
"./packages/server/lib/util/glob.js",
- "./packages/server/lib/util/proxy.ts",
- "./packages/server/lib/util/requestedWithAndCredentialManager.ts",
- "./packages/server/lib/util/socket_allowed.ts",
- "./packages/server/lib/util/stream_buffer.ts",
+ "./packages/server/lib/util/profile_cleaner.js",
+ "./packages/server/lib/util/trash.js",
"./packages/server/lib/video_capture.ts",
"./packages/server/node_modules/@benmalka/foxdriver/build/actor.js",
"./packages/server/node_modules/@benmalka/foxdriver/build/browser.js",
@@ -952,11 +918,49 @@
"./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js",
"./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js",
"./packages/ts/register.js",
- "./packages/types/index.js",
- "./tooling/v8-snapshot/dist/setup/v8-snapshot-entry-cy-in-cy.js"
+ "./packages/types/index.js"
],
"healthy": [
"./node_modules/@babel/code-frame/lib/index.js",
+ "./node_modules/@babel/compat-data/data/native-modules.json",
+ "./node_modules/@babel/compat-data/data/plugins.json",
+ "./node_modules/@babel/compat-data/native-modules.js",
+ "./node_modules/@babel/compat-data/plugins.js",
+ "./node_modules/@babel/core/lib/config/caching.js",
+ "./node_modules/@babel/core/lib/config/files/import.cjs",
+ "./node_modules/@babel/core/lib/config/files/index.js",
+ "./node_modules/@babel/core/lib/config/files/module-types.js",
+ "./node_modules/@babel/core/lib/config/files/package.js",
+ "./node_modules/@babel/core/lib/config/files/utils.js",
+ "./node_modules/@babel/core/lib/config/helpers/deep-array.js",
+ "./node_modules/@babel/core/lib/config/helpers/environment.js",
+ "./node_modules/@babel/core/lib/config/plugin.js",
+ "./node_modules/@babel/core/lib/config/printer.js",
+ "./node_modules/@babel/core/lib/config/resolve-targets.js",
+ "./node_modules/@babel/core/lib/config/util.js",
+ "./node_modules/@babel/core/lib/config/validation/option-assertions.js",
+ "./node_modules/@babel/core/lib/config/validation/options.js",
+ "./node_modules/@babel/core/lib/config/validation/plugins.js",
+ "./node_modules/@babel/core/lib/config/validation/removed.js",
+ "./node_modules/@babel/core/lib/errors/config-error.js",
+ "./node_modules/@babel/core/lib/errors/rewrite-stack-trace.js",
+ "./node_modules/@babel/core/lib/gensync-utils/async.js",
+ "./node_modules/@babel/core/lib/gensync-utils/functional.js",
+ "./node_modules/@babel/core/lib/index.js",
+ "./node_modules/@babel/core/lib/parse.js",
+ "./node_modules/@babel/core/lib/parser/index.js",
+ "./node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js",
+ "./node_modules/@babel/core/lib/transform-ast.js",
+ "./node_modules/@babel/core/lib/transform-file.js",
+ "./node_modules/@babel/core/lib/transform.js",
+ "./node_modules/@babel/core/lib/transformation/block-hoist-plugin.js",
+ "./node_modules/@babel/core/lib/transformation/file/generate.js",
+ "./node_modules/@babel/core/lib/transformation/file/merge-map.js",
+ "./node_modules/@babel/core/lib/transformation/index.js",
+ "./node_modules/@babel/core/lib/transformation/normalize-opts.js",
+ "./node_modules/@babel/core/lib/transformation/plugin-pass.js",
+ "./node_modules/@babel/core/lib/transformation/util/clone-deep.js",
+ "./node_modules/@babel/core/lib/vendor/import-meta-resolve.js",
"./node_modules/@babel/generator/lib/buffer.js",
"./node_modules/@babel/generator/lib/generators/base.js",
"./node_modules/@babel/generator/lib/generators/classes.js",
@@ -974,23 +978,37 @@
"./node_modules/@babel/generator/lib/node/parentheses.js",
"./node_modules/@babel/generator/lib/printer.js",
"./node_modules/@babel/generator/lib/source-map.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/util.js",
- "./node_modules/@babel/generator/node_modules/source-map/source-map.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/debug.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/filter-items.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/index.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/options.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/pretty.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/targets.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/utils.js",
+ "./node_modules/@babel/helper-environment-visitor/lib/index.js",
"./node_modules/@babel/helper-function-name/lib/index.js",
"./node_modules/@babel/helper-hoist-variables/lib/index.js",
+ "./node_modules/@babel/helper-module-imports/lib/import-builder.js",
+ "./node_modules/@babel/helper-module-imports/lib/import-injector.js",
+ "./node_modules/@babel/helper-module-imports/lib/index.js",
+ "./node_modules/@babel/helper-module-imports/lib/is-module.js",
+ "./node_modules/@babel/helper-module-transforms/lib/dynamic-import.js",
+ "./node_modules/@babel/helper-module-transforms/lib/get-module-name.js",
+ "./node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js",
+ "./node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js",
+ "./node_modules/@babel/helper-module-transforms/lib/rewrite-this.js",
+ "./node_modules/@babel/helper-simple-access/lib/index.js",
"./node_modules/@babel/helper-split-export-declaration/lib/index.js",
+ "./node_modules/@babel/helper-string-parser/lib/index.js",
"./node_modules/@babel/helper-validator-identifier/lib/identifier.js",
"./node_modules/@babel/helper-validator-identifier/lib/index.js",
"./node_modules/@babel/helper-validator-identifier/lib/keyword.js",
+ "./node_modules/@babel/helper-validator-option/lib/find-suggestion.js",
+ "./node_modules/@babel/helper-validator-option/lib/index.js",
+ "./node_modules/@babel/helper-validator-option/lib/validator.js",
+ "./node_modules/@babel/helpers/lib/helpers-generated.js",
+ "./node_modules/@babel/helpers/lib/helpers.js",
+ "./node_modules/@babel/helpers/lib/index.js",
"./node_modules/@babel/highlight/lib/index.js",
"./node_modules/@babel/parser/lib/index.js",
"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js",
@@ -1026,16 +1044,23 @@
"./node_modules/@babel/template/lib/parse.js",
"./node_modules/@babel/template/lib/populate.js",
"./node_modules/@babel/template/lib/string.js",
+ "./node_modules/@babel/traverse/lib/cache.js",
+ "./node_modules/@babel/traverse/lib/hub.js",
+ "./node_modules/@babel/traverse/lib/path/ancestry.js",
+ "./node_modules/@babel/traverse/lib/path/evaluation.js",
+ "./node_modules/@babel/traverse/lib/path/inference/index.js",
+ "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js",
+ "./node_modules/@babel/traverse/lib/path/inference/inferers.js",
+ "./node_modules/@babel/traverse/lib/path/inference/util.js",
+ "./node_modules/@babel/traverse/lib/path/lib/hoister.js",
+ "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js",
+ "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js",
+ "./node_modules/@babel/traverse/lib/scope/binding.js",
+ "./node_modules/@babel/traverse/lib/scope/lib/renamer.js",
+ "./node_modules/@babel/traverse/lib/visitors.js",
"./node_modules/@babel/types/lib/asserts/assertNode.js",
"./node_modules/@babel/types/lib/asserts/generated/index.js",
"./node_modules/@babel/types/lib/ast-types/generated/index.js",
- "./node_modules/@babel/types/lib/builders/builder.js",
- "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
- "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
- "./node_modules/@babel/types/lib/builders/generated/index.js",
- "./node_modules/@babel/types/lib/builders/generated/uppercase.js",
- "./node_modules/@babel/types/lib/builders/react/buildChildren.js",
- "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
"./node_modules/@babel/types/lib/clone/clone.js",
"./node_modules/@babel/types/lib/clone/cloneDeep.js",
"./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js",
@@ -1050,21 +1075,13 @@
"./node_modules/@babel/types/lib/comments/removeComments.js",
"./node_modules/@babel/types/lib/constants/generated/index.js",
"./node_modules/@babel/types/lib/constants/index.js",
- "./node_modules/@babel/types/lib/converters/ensureBlock.js",
"./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js",
"./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js",
- "./node_modules/@babel/types/lib/converters/toBlock.js",
- "./node_modules/@babel/types/lib/converters/toComputedKey.js",
"./node_modules/@babel/types/lib/converters/toExpression.js",
"./node_modules/@babel/types/lib/converters/toIdentifier.js",
"./node_modules/@babel/types/lib/converters/toKeyAlias.js",
- "./node_modules/@babel/types/lib/converters/toSequenceExpression.js",
- "./node_modules/@babel/types/lib/converters/toStatement.js",
- "./node_modules/@babel/types/lib/converters/valueToNode.js",
- "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
"./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js",
"./node_modules/@babel/types/lib/modifications/inherits.js",
- "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
"./node_modules/@babel/types/lib/modifications/removeProperties.js",
"./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js",
"./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js",
@@ -1073,7 +1090,6 @@
"./node_modules/@babel/types/lib/traverse/traverse.js",
"./node_modules/@babel/types/lib/traverse/traverseFast.js",
"./node_modules/@babel/types/lib/utils/inherit.js",
- "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
"./node_modules/@babel/types/lib/utils/shallowEqual.js",
"./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js",
"./node_modules/@babel/types/lib/validators/generated/index.js",
@@ -1092,7 +1108,7 @@
"./node_modules/@babel/types/lib/validators/matchesPattern.js",
"./node_modules/@babel/types/lib/validators/react/isCompatTag.js",
"./node_modules/@babel/types/lib/validators/react/isReactComponent.js",
- "./node_modules/@babel/types/node_modules/to-fast-properties/index.js",
+ "./node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js",
@@ -1247,6 +1263,7 @@
"./node_modules/@jimp/png/dist/index.js",
"./node_modules/@jimp/utils/dist/index.js",
"./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js",
+ "./node_modules/@jridgewell/set-array/dist/set-array.umd.js",
"./node_modules/@kwsites/promise-deferred/dist/index.js",
"./node_modules/@nodelib/fs.scandir/out/constants.js",
"./node_modules/@nodelib/fs.scandir/out/index.js",
@@ -1409,7 +1426,21 @@
"./node_modules/braces/lib/parse.js",
"./node_modules/braces/lib/stringify.js",
"./node_modules/braces/lib/utils.js",
+ "./node_modules/browserslist/error.js",
+ "./node_modules/browserslist/index.js",
+ "./node_modules/browserslist/node.js",
+ "./node_modules/browserslist/parse.js",
"./node_modules/bytes/index.js",
+ "./node_modules/caniuse-lite/data/agents.js",
+ "./node_modules/caniuse-lite/data/browserVersions.js",
+ "./node_modules/caniuse-lite/data/browsers.js",
+ "./node_modules/caniuse-lite/dist/lib/statuses.js",
+ "./node_modules/caniuse-lite/dist/lib/supported.js",
+ "./node_modules/caniuse-lite/dist/unpacker/agents.js",
+ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js",
+ "./node_modules/caniuse-lite/dist/unpacker/browsers.js",
+ "./node_modules/caniuse-lite/dist/unpacker/feature.js",
+ "./node_modules/caniuse-lite/dist/unpacker/region.js",
"./node_modules/caseless/index.js",
"./node_modules/chalk/node_modules/ansi-styles/index.js",
"./node_modules/chalk/templates.js",
@@ -1525,6 +1556,7 @@
"./node_modules/compression/node_modules/ms/index.js",
"./node_modules/concat-map/index.js",
"./node_modules/content-type/index.js",
+ "./node_modules/convert-source-map/index.js",
"./node_modules/cookie-parser/index.js",
"./node_modules/cookie-parser/node_modules/cookie/index.js",
"./node_modules/cookie-signature/index.js",
@@ -1654,6 +1686,7 @@
"./node_modules/electron-packager/src/prune.js",
"./node_modules/electron-packager/src/targets.js",
"./node_modules/electron-packager/src/unzip.js",
+ "./node_modules/electron-to-chromium/versions.js",
"./node_modules/encodeurl/index.js",
"./node_modules/encoding/lib/encoding.js",
"./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js",
@@ -1683,6 +1716,17 @@
"./node_modules/escape-string-applescript/index.js",
"./node_modules/escape-string-regexp/index.js",
"./node_modules/esprima/dist/esprima.js",
+ "./node_modules/estree-to-babel/lib/comments.js",
+ "./node_modules/estree-to-babel/lib/estree-to-babel.js",
+ "./node_modules/estree-to-babel/lib/get-ast.js",
+ "./node_modules/estree-to-babel/lib/set-class-method.js",
+ "./node_modules/estree-to-babel/lib/set-class-private-name.js",
+ "./node_modules/estree-to-babel/lib/set-class-private-property.js",
+ "./node_modules/estree-to-babel/lib/set-literal.js",
+ "./node_modules/estree-to-babel/lib/traverse-object-expression.js",
+ "./node_modules/esutils/lib/ast.js",
+ "./node_modules/esutils/lib/keyword.js",
+ "./node_modules/esutils/lib/utils.js",
"./node_modules/etag/index.js",
"./node_modules/execa/index.js",
"./node_modules/execa/lib/command.js",
@@ -1899,6 +1943,7 @@
"./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js",
"./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js",
"./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js",
+ "./node_modules/gensync/index.js",
"./node_modules/get-own-enumerable-property-symbols/lib/index.js",
"./node_modules/get-package-info/lib/index.js",
"./node_modules/get-package-info/node_modules/debug/src/debug.js",
@@ -2244,6 +2289,11 @@
"./node_modules/json-buffer/index.js",
"./node_modules/json-schema/lib/validate.js",
"./node_modules/json-stringify-safe/stringify.js",
+ "./node_modules/json5/lib/index.js",
+ "./node_modules/json5/lib/parse.js",
+ "./node_modules/json5/lib/stringify.js",
+ "./node_modules/json5/lib/unicode.js",
+ "./node_modules/json5/lib/util.js",
"./node_modules/jsonlint/lib/jsonlint.js",
"./node_modules/jsprim/lib/jsprim.js",
"./node_modules/junk/index.js",
@@ -2459,6 +2509,7 @@
"./node_modules/mime-types/index.js",
"./node_modules/mime/types.json",
"./node_modules/mimic-response/index.js",
+ "./node_modules/min-indent/index.js",
"./node_modules/minimist/index.js",
"./node_modules/mkdirp/index.js",
"./node_modules/mocha-7.0.1/lib/browser/progress.js",
@@ -2598,6 +2649,8 @@
"./node_modules/node-forge/lib/forge.js",
"./node_modules/node-forge/lib/md.js",
"./node_modules/node-forge/lib/oids.js",
+ "./node_modules/node-releases/data/processed/envs.json",
+ "./node_modules/node-releases/data/release-schedule/release-schedule.json",
"./node_modules/normalize-package-data/lib/extract_description.js",
"./node_modules/normalize-package-data/lib/fixer.js",
"./node_modules/normalize-package-data/lib/make_warning.js",
@@ -3044,6 +3097,101 @@
"./node_modules/range-parser/index.js",
"./node_modules/raw-body/index.js",
"./node_modules/raw-body/node_modules/bytes/index.js",
+ "./node_modules/react-docgen/dist/Documentation.js",
+ "./node_modules/react-docgen/dist/handlers/componentDocblockHandler.js",
+ "./node_modules/react-docgen/dist/handlers/componentMethodsHandler.js",
+ "./node_modules/react-docgen/dist/handlers/componentMethodsJsDocHandler.js",
+ "./node_modules/react-docgen/dist/handlers/defaultPropsHandler.js",
+ "./node_modules/react-docgen/dist/handlers/displayNameHandler.js",
+ "./node_modules/react-docgen/dist/handlers/flowTypeHandler.js",
+ "./node_modules/react-docgen/dist/handlers/index.js",
+ "./node_modules/react-docgen/dist/handlers/propDocBlockHandler.js",
+ "./node_modules/react-docgen/dist/handlers/propTypeCompositionHandler.js",
+ "./node_modules/react-docgen/dist/handlers/propTypeHandler.js",
+ "./node_modules/react-docgen/dist/importer/ignoreImports.js",
+ "./node_modules/react-docgen/dist/resolver/findAllComponentDefinitions.js",
+ "./node_modules/react-docgen/dist/resolver/findAllExportedComponentDefinitions.js",
+ "./node_modules/react-docgen/dist/resolver/findExportedComponentDefinition.js",
+ "./node_modules/react-docgen/dist/resolver/index.js",
+ "./node_modules/react-docgen/dist/utils/docblock.js",
+ "./node_modules/react-docgen/dist/utils/expressionTo.js",
+ "./node_modules/react-docgen/dist/utils/flowUtilityTypes.js",
+ "./node_modules/react-docgen/dist/utils/getClassMemberValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getFlowType.js",
+ "./node_modules/react-docgen/dist/utils/getFlowTypeFromReactComponent.js",
+ "./node_modules/react-docgen/dist/utils/getMemberExpressionRoot.js",
+ "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getMemberValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getMembers.js",
+ "./node_modules/react-docgen/dist/utils/getMethodDocumentation.js",
+ "./node_modules/react-docgen/dist/utils/getNameOrValue.js",
+ "./node_modules/react-docgen/dist/utils/getParameterName.js",
+ "./node_modules/react-docgen/dist/utils/getPropType.js",
+ "./node_modules/react-docgen/dist/utils/getPropertyName.js",
+ "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getTSType.js",
+ "./node_modules/react-docgen/dist/utils/getTypeAnnotation.js",
+ "./node_modules/react-docgen/dist/utils/getTypeParameters.js",
+ "./node_modules/react-docgen/dist/utils/index.js",
+ "./node_modules/react-docgen/dist/utils/isDestructuringAssignment.js",
+ "./node_modules/react-docgen/dist/utils/isExportsOrModuleAssignment.js",
+ "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactChildrenElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactCloneElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactComponentClass.js",
+ "./node_modules/react-docgen/dist/utils/isReactComponentMethod.js",
+ "./node_modules/react-docgen/dist/utils/isReactCreateClassCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactCreateElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactModuleName.js",
+ "./node_modules/react-docgen/dist/utils/isRequiredPropType.js",
+ "./node_modules/react-docgen/dist/utils/isStatelessComponent.js",
+ "./node_modules/react-docgen/dist/utils/isUnreachableFlowType.js",
+ "./node_modules/react-docgen/dist/utils/match.js",
+ "./node_modules/react-docgen/dist/utils/normalizeClassDefinition.js",
+ "./node_modules/react-docgen/dist/utils/parseJsDoc.js",
+ "./node_modules/react-docgen/dist/utils/postProcessDocumentation.js",
+ "./node_modules/react-docgen/dist/utils/printValue.js",
+ "./node_modules/react-docgen/dist/utils/resolveExportDeclaration.js",
+ "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js",
+ "./node_modules/react-docgen/dist/utils/resolveGenericTypeAnnotation.js",
+ "./node_modules/react-docgen/dist/utils/resolveHOC.js",
+ "./node_modules/react-docgen/dist/utils/resolveObjectKeysToArray.js",
+ "./node_modules/react-docgen/dist/utils/resolveObjectValuesToArray.js",
+ "./node_modules/react-docgen/dist/utils/resolveToModule.js",
+ "./node_modules/react-docgen/dist/utils/resolveToValue.js",
+ "./node_modules/react-docgen/dist/utils/setPropDescription.js",
+ "./node_modules/react-docgen/dist/utils/traverse.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/babel-core.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/babel.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/core-operators.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/core.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es-proposals.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2016.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2017.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2018.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2019.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2020.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es6.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/esprima.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/flow.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/jsx.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/type-annotations.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/typescript.js",
+ "./node_modules/react-docgen/node_modules/ast-types/fork.js",
+ "./node_modules/react-docgen/node_modules/ast-types/gen/namedTypes.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/equiv.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/node-path.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/path-visitor.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/path.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/scope.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/shared.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/types.js",
+ "./node_modules/react-docgen/node_modules/ast-types/main.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/doctrine.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/typed.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/utility.js",
+ "./node_modules/react-docgen/node_modules/doctrine/package.json",
"./node_modules/readable-stream/lib/internal/streams/destroy.js",
"./node_modules/recast/node_modules/ast-types/def/babel-core.js",
"./node_modules/recast/node_modules/ast-types/def/babel.js",
@@ -3223,6 +3371,7 @@
"./node_modules/strip-bom/index.js",
"./node_modules/strip-eof/index.js",
"./node_modules/strip-final-newline/index.js",
+ "./node_modules/strip-indent/index.js",
"./node_modules/strip-outer/index.js",
"./node_modules/sumchecker/index.js",
"./node_modules/supports-color/node_modules/has-flag/index.js",
@@ -3263,6 +3412,7 @@
"./node_modules/through/index.js",
"./node_modules/timm/lib/timm.js",
"./node_modules/tinycolor2/tinycolor.js",
+ "./node_modules/to-fast-properties/index.js",
"./node_modules/to-readable-stream/index.js",
"./node_modules/to-regex-range/index.js",
"./node_modules/to-regex-range/node_modules/is-number/index.js",
@@ -3504,13 +3654,114 @@
"./packages/config/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js",
"./packages/config/node_modules/@babel/traverse/lib/path/lib/virtual-types.js",
"./packages/config/node_modules/@babel/traverse/lib/scope/binding.js",
+ "./packages/config/node_modules/@babel/traverse/lib/scope/index.js",
"./packages/config/node_modules/@babel/traverse/lib/scope/lib/renamer.js",
"./packages/config/node_modules/@babel/traverse/lib/visitors.js",
+ "./packages/config/src/ast-utils/addToCypressConfig.ts",
+ "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts",
"./packages/config/src/ast-utils/astConfigHelpers.ts",
+ "./packages/config/src/browser.ts",
+ "./packages/config/src/index.ts",
+ "./packages/config/src/project/index.ts",
+ "./packages/config/src/project/utils.ts",
"./packages/config/src/utils.ts",
+ "./packages/config/src/validation.ts",
"./packages/data-context/node_modules/@babel/code-frame/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/buffer.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/base.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/classes.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/expressions.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/flow.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/jsx.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/methods.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/modules.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/statements.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/template-literals.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/types.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/typescript.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/parentheses.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/printer.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/source-map.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/assertNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/ast-types/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/clone.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeep.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComment.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritInnerComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritLeadingComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritTrailingComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritsComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/removeComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/constants/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/constants/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toIdentifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toKeyAlias.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/inherits.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removeProperties.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverse.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverseFast.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/inherit.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/shallowEqual.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBinding.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBlockScoped.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isImmutable.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isLet.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNodesEquivalent.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isReferenced.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isScope.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isSpecifierDefault.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidES3Identifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidIdentifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isVar.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/matchesPattern.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js",
"./packages/data-context/node_modules/@babel/parser/lib/index.js",
"./packages/data-context/node_modules/anymatch/index.js",
+ "./packages/data-context/node_modules/ast-types/def/babel-core.js",
+ "./packages/data-context/node_modules/ast-types/def/babel.js",
+ "./packages/data-context/node_modules/ast-types/def/core-operators.js",
+ "./packages/data-context/node_modules/ast-types/def/core.js",
+ "./packages/data-context/node_modules/ast-types/def/es-proposals.js",
+ "./packages/data-context/node_modules/ast-types/def/es2016.js",
+ "./packages/data-context/node_modules/ast-types/def/es2017.js",
+ "./packages/data-context/node_modules/ast-types/def/es2018.js",
+ "./packages/data-context/node_modules/ast-types/def/es2019.js",
+ "./packages/data-context/node_modules/ast-types/def/es2020.js",
+ "./packages/data-context/node_modules/ast-types/def/es6.js",
+ "./packages/data-context/node_modules/ast-types/def/esprima.js",
+ "./packages/data-context/node_modules/ast-types/def/flow.js",
+ "./packages/data-context/node_modules/ast-types/def/jsx.js",
+ "./packages/data-context/node_modules/ast-types/def/type-annotations.js",
+ "./packages/data-context/node_modules/ast-types/def/typescript.js",
+ "./packages/data-context/node_modules/ast-types/fork.js",
+ "./packages/data-context/node_modules/ast-types/gen/namedTypes.js",
+ "./packages/data-context/node_modules/ast-types/lib/equiv.js",
+ "./packages/data-context/node_modules/ast-types/lib/node-path.js",
+ "./packages/data-context/node_modules/ast-types/lib/path-visitor.js",
+ "./packages/data-context/node_modules/ast-types/lib/path.js",
+ "./packages/data-context/node_modules/ast-types/lib/scope.js",
+ "./packages/data-context/node_modules/ast-types/lib/shared.js",
+ "./packages/data-context/node_modules/ast-types/lib/types.js",
+ "./packages/data-context/node_modules/ast-types/main.js",
"./packages/data-context/node_modules/cross-spawn/index.js",
"./packages/data-context/node_modules/cross-spawn/lib/enoent.js",
"./packages/data-context/node_modules/cross-spawn/lib/parse.js",
@@ -3550,35 +3801,63 @@
"./packages/data-context/node_modules/fs-extra/lib/util/utimes.js",
"./packages/data-context/node_modules/micromatch/index.js",
"./packages/data-context/node_modules/path-key/index.js",
+ "./packages/data-context/node_modules/source-map/lib/array-set.js",
+ "./packages/data-context/node_modules/source-map/lib/base64-vlq.js",
+ "./packages/data-context/node_modules/source-map/lib/base64.js",
+ "./packages/data-context/node_modules/source-map/lib/binary-search.js",
+ "./packages/data-context/node_modules/source-map/lib/mapping-list.js",
+ "./packages/data-context/node_modules/source-map/lib/quick-sort.js",
+ "./packages/data-context/node_modules/source-map/lib/source-map-consumer.js",
+ "./packages/data-context/node_modules/source-map/lib/source-map-generator.js",
+ "./packages/data-context/node_modules/source-map/lib/source-node.js",
+ "./packages/data-context/node_modules/source-map/lib/util.js",
+ "./packages/data-context/node_modules/source-map/source-map.js",
"./packages/data-context/src/actions/AppActions.ts",
"./packages/data-context/src/actions/AuthActions.ts",
"./packages/data-context/src/actions/BrowserActions.ts",
+ "./packages/data-context/src/actions/CodegenActions.ts",
"./packages/data-context/src/actions/CohortsActions.ts",
"./packages/data-context/src/actions/DevActions.ts",
"./packages/data-context/src/actions/ElectronActions.ts",
"./packages/data-context/src/actions/ErrorActions.ts",
+ "./packages/data-context/src/actions/EventCollectorActions.ts",
"./packages/data-context/src/actions/FileActions.ts",
"./packages/data-context/src/actions/LocalSettingsActions.ts",
"./packages/data-context/src/actions/ProjectActions.ts",
"./packages/data-context/src/actions/VersionsActions.ts",
+ "./packages/data-context/src/actions/WizardActions.ts",
+ "./packages/data-context/src/codegen/code-generator.ts",
"./packages/data-context/src/codegen/spec-options.ts",
"./packages/data-context/src/data/CypressEnv.ts",
+ "./packages/data-context/src/data/EventRegistrar.ts",
+ "./packages/data-context/src/data/ProjectConfigManager.ts",
"./packages/data-context/src/data/ProjectLifecycleManager.ts",
"./packages/data-context/src/data/coreDataShape.ts",
"./packages/data-context/src/gen/urql-introspection.gen.ts",
+ "./packages/data-context/src/sources/CloudDataSource.ts",
"./packages/data-context/src/sources/EnvDataSource.ts",
"./packages/data-context/src/sources/ErrorDataSource.ts",
+ "./packages/data-context/src/sources/FileDataSource.ts",
+ "./packages/data-context/src/sources/GitDataSource.ts",
+ "./packages/data-context/src/sources/GraphQLDataSource.ts",
+ "./packages/data-context/src/sources/HtmlDataSource.ts",
+ "./packages/data-context/src/sources/ProjectDataSource.ts",
+ "./packages/data-context/src/sources/RemotePollingDataSource.ts",
"./packages/data-context/src/sources/RemoteRequestDataSource.ts",
"./packages/data-context/src/sources/UtilDataSource.ts",
+ "./packages/data-context/src/sources/VersionsDataSource.ts",
"./packages/data-context/src/sources/WizardDataSource.ts",
"./packages/data-context/src/sources/migration/legacyOptions.ts",
"./packages/data-context/src/sources/migration/parserUtils.ts",
"./packages/data-context/src/sources/migration/regexps.ts",
+ "./packages/data-context/src/sources/migration/utils.ts",
"./packages/data-context/src/util/DocumentNodeBuilder.ts",
"./packages/data-context/src/util/autoBindDebug.ts",
"./packages/data-context/src/util/cached.ts",
+ "./packages/data-context/src/util/config-file-updater.ts",
"./packages/data-context/src/util/file.ts",
"./packages/data-context/src/util/hasTypescript.ts",
+ "./packages/data-context/src/util/index.ts",
"./packages/data-context/src/util/pluginHandlers.ts",
"./packages/data-context/src/util/urqlCacheKeys.ts",
"./packages/data-context/src/util/weightedChoice.ts",
@@ -3607,8 +3886,6 @@
"./packages/extension/index.js",
"./packages/extension/lib/extension.js",
"./packages/extension/lib/util.js",
- "./packages/frontend-shared/cypress/e2e/prod-dependencies.ts",
- "./packages/frontend-shared/cypress/e2e/v8-snapshot-entry.ts",
"./packages/graphql/node_modules/chalk/source/templates.js",
"./packages/graphql/node_modules/chalk/source/util.js",
"./packages/graphql/node_modules/debug/node_modules/ms/index.js",
@@ -3624,21 +3901,87 @@
"./packages/graphql/node_modules/ws/lib/subprotocol.js",
"./packages/graphql/node_modules/ws/lib/validation.js",
"./packages/graphql/src/index.ts",
+ "./packages/graphql/src/plugins/index.ts",
+ "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts",
+ "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts",
+ "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts",
+ "./packages/graphql/src/plugins/nexusNodePlugin.ts",
+ "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts",
+ "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts",
+ "./packages/graphql/src/schema.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentDescriptor.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts",
+ "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts",
+ "./packages/graphql/src/schemaTypes/unions/index.ts",
+ "./packages/graphql/src/stitching/remoteSchema.ts",
"./packages/https-proxy/lib/proxy.js",
"./packages/https-proxy/lib/server.js",
"./packages/https-proxy/lib/util/parse.js",
"./packages/https-proxy/test/helpers/https_server.js",
"./packages/launcher/index.ts",
+ "./packages/launcher/lib/browsers.ts",
+ "./packages/launcher/lib/darwin/index.ts",
+ "./packages/launcher/lib/darwin/util.ts",
+ "./packages/launcher/lib/detect.ts",
"./packages/launcher/lib/errors.ts",
+ "./packages/launcher/lib/linux/index.ts",
"./packages/launcher/lib/types.ts",
"./packages/launcher/lib/utils.ts",
+ "./packages/launcher/lib/windows/index.ts",
"./packages/launcher/node_modules/which/which.js",
"./packages/net-stubbing/lib/external-types.ts",
+ "./packages/net-stubbing/lib/internal-types.ts",
+ "./packages/net-stubbing/lib/server/driver-events.ts",
"./packages/net-stubbing/lib/server/index.ts",
"./packages/net-stubbing/lib/server/intercepted-request.ts",
+ "./packages/net-stubbing/lib/server/middleware/error.ts",
+ "./packages/net-stubbing/lib/server/middleware/request.ts",
+ "./packages/net-stubbing/lib/server/middleware/response.ts",
"./packages/net-stubbing/lib/server/route-matching.ts",
"./packages/net-stubbing/lib/server/state.ts",
"./packages/net-stubbing/lib/server/types.ts",
+ "./packages/net-stubbing/lib/server/util.ts",
+ "./packages/net-stubbing/lib/types.ts",
"./packages/net-stubbing/lib/util.ts",
"./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js",
"./packages/net-stubbing/node_modules/debug/src/common.js",
@@ -3648,10 +3991,17 @@
"./packages/network/lib/allow-destroy.ts",
"./packages/network/lib/blocked.ts",
"./packages/network/lib/ca.ts",
+ "./packages/network/lib/client-certificates.ts",
"./packages/network/lib/concat-stream.ts",
+ "./packages/network/lib/connect.ts",
+ "./packages/network/lib/cors.ts",
"./packages/network/lib/http-utils.ts",
"./packages/network/lib/index.ts",
+ "./packages/network/lib/uri.ts",
+ "./packages/proxy/lib/http/error-middleware.ts",
+ "./packages/proxy/lib/http/request-middleware.ts",
"./packages/proxy/lib/http/util/ast-rewriter.ts",
+ "./packages/proxy/lib/http/util/buffers.ts",
"./packages/proxy/lib/http/util/cookies.ts",
"./packages/proxy/lib/http/util/inject.ts",
"./packages/proxy/lib/http/util/replace_stream.ts",
@@ -3680,10 +4030,12 @@
"./packages/resolve-dist/lib/index.ts",
"./packages/rewriter/lib/async-rewriters.ts",
"./packages/rewriter/lib/constants.json",
+ "./packages/rewriter/lib/deferred-source-map-cache.ts",
"./packages/rewriter/lib/html-rules.ts",
"./packages/rewriter/lib/html.ts",
"./packages/rewriter/lib/index.ts",
"./packages/rewriter/lib/js-rules.ts",
+ "./packages/rewriter/lib/js.ts",
"./packages/rewriter/lib/util/source-maps.ts",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js",
"./packages/rewriter/node_modules/parse5/lib/common/doctype.js",
@@ -3703,19 +4055,30 @@
"./packages/scaffold-config/src/commandFile.ts",
"./packages/scaffold-config/src/component-index-template.ts",
"./packages/scaffold-config/src/dependencies.ts",
+ "./packages/scaffold-config/src/detect.ts",
"./packages/scaffold-config/src/frameworks.ts",
+ "./packages/scaffold-config/src/index.ts",
"./packages/scaffold-config/src/supportFile.ts",
"./packages/server/config/app.json",
"./packages/server/lib/automation/automation.ts",
+ "./packages/server/lib/automation/cookies.ts",
"./packages/server/lib/automation/index.ts",
"./packages/server/lib/automation/screenshot.ts",
"./packages/server/lib/automation/util.ts",
+ "./packages/server/lib/browsers/browser-cri-client.ts",
+ "./packages/server/lib/browsers/cdp_automation.ts",
+ "./packages/server/lib/browsers/cri-client.ts",
+ "./packages/server/lib/browsers/electron.ts",
+ "./packages/server/lib/browsers/firefox-util.ts",
"./packages/server/lib/browsers/protocol.ts",
+ "./packages/server/lib/browsers/webkit-automation.ts",
+ "./packages/server/lib/browsers/webkit.ts",
"./packages/server/lib/cloud/machine_id.js",
- "./packages/server/lib/cloud/upload.ts",
"./packages/server/lib/cohorts.ts",
+ "./packages/server/lib/config.ts",
"./packages/server/lib/controllers/client.js",
"./packages/server/lib/controllers/files.js",
+ "./packages/server/lib/controllers/iframes.ts",
"./packages/server/lib/controllers/reporter.js",
"./packages/server/lib/controllers/runner.ts",
"./packages/server/lib/controllers/spec.js",
@@ -3724,33 +4087,47 @@
"./packages/server/lib/exec.js",
"./packages/server/lib/experiments.ts",
"./packages/server/lib/file_server.js",
- "./packages/server/lib/files.js",
- "./packages/server/lib/fixture.js",
"./packages/server/lib/gui/links.ts",
"./packages/server/lib/gui/menu.js",
+ "./packages/server/lib/gui/windows.ts",
+ "./packages/server/lib/makeDataContext.ts",
"./packages/server/lib/modes/exit.js",
"./packages/server/lib/modes/index.ts",
- "./packages/server/lib/modes/info.js",
+ "./packages/server/lib/modes/interactive.ts",
"./packages/server/lib/modes/pkg.js",
"./packages/server/lib/modes/smoke_test.js",
"./packages/server/lib/override_require.ts",
"./packages/server/lib/plugins/index.ts",
+ "./packages/server/lib/project_utils.ts",
+ "./packages/server/lib/remote_states.ts",
"./packages/server/lib/request.js",
+ "./packages/server/lib/routes-ct.ts",
+ "./packages/server/lib/routes-e2e.ts",
+ "./packages/server/lib/routes.ts",
+ "./packages/server/lib/saved_state.ts",
+ "./packages/server/lib/server-base.ts",
+ "./packages/server/lib/server-ct.ts",
+ "./packages/server/lib/server-e2e.ts",
"./packages/server/lib/session.ts",
+ "./packages/server/lib/socket-base.ts",
+ "./packages/server/lib/socket-e2e.ts",
"./packages/server/lib/studio.ts",
"./packages/server/lib/task.js",
- "./packages/server/lib/template_engine.js",
+ "./packages/server/lib/unhandled_exceptions.ts",
"./packages/server/lib/util/args.js",
"./packages/server/lib/util/cache_buster.js",
"./packages/server/lib/util/ci_provider.js",
"./packages/server/lib/util/class-helpers.ts",
"./packages/server/lib/util/duration.js",
+ "./packages/server/lib/util/editors.ts",
"./packages/server/lib/util/electron-app.js",
+ "./packages/server/lib/util/ensure-url.ts",
"./packages/server/lib/util/env-editors.ts",
"./packages/server/lib/util/env.js",
"./packages/server/lib/util/escape_filename.ts",
- "./packages/server/lib/util/file.js",
+ "./packages/server/lib/util/file-opener.ts",
"./packages/server/lib/util/find_process.js",
+ "./packages/server/lib/util/fs.ts",
"./packages/server/lib/util/get-windows-proxy.js",
"./packages/server/lib/util/headers.js",
"./packages/server/lib/util/human_time.js",
@@ -3762,17 +4139,19 @@
"./packages/server/lib/util/patch-fs.ts",
"./packages/server/lib/util/performance_benchmark.js",
"./packages/server/lib/util/print-run.ts",
- "./packages/server/lib/util/profile_cleaner.js",
+ "./packages/server/lib/util/proxy.ts",
"./packages/server/lib/util/random.js",
+ "./packages/server/lib/util/resourceTypeAndCredentialManager.ts",
"./packages/server/lib/util/server_destroy.ts",
"./packages/server/lib/util/shell.js",
+ "./packages/server/lib/util/socket_allowed.ts",
"./packages/server/lib/util/spec_writer.ts",
"./packages/server/lib/util/status_code.js",
+ "./packages/server/lib/util/stream_buffer.ts",
"./packages/server/lib/util/system.js",
"./packages/server/lib/util/terminal-size.js",
"./packages/server/lib/util/terminal.js",
"./packages/server/lib/util/tests_utils.ts",
- "./packages/server/lib/util/trash.js",
"./packages/server/lib/util/tty.js",
"./packages/server/node_modules/@babel/parser/lib/index.js",
"./packages/server/node_modules/@benmalka/foxdriver/build/index.js",
diff --git a/tooling/v8-snapshot/cache/win32/snapshot-meta.json b/tooling/v8-snapshot/cache/win32/snapshot-meta.json
index 669a920fa84b..9277006b816a 100644
--- a/tooling/v8-snapshot/cache/win32/snapshot-meta.json
+++ b/tooling/v8-snapshot/cache/win32/snapshot-meta.json
@@ -4,6 +4,13 @@
"./get-stream/buffer-stream.js",
"./graceful-fs/polyfills.js",
"./lockfile/lockfile.js",
+ "./node_modules/@babel/traverse/lib/index.js",
+ "./node_modules/@babel/traverse/lib/path/comments.js",
+ "./node_modules/@babel/traverse/lib/path/conversion.js",
+ "./node_modules/@babel/traverse/lib/path/family.js",
+ "./node_modules/@babel/traverse/lib/path/introspection.js",
+ "./node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js",
+ "./node_modules/@babel/types/lib/definitions/core.js",
"./node_modules/@cspotcode/source-map-support/source-map-support.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/node.js",
"./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js",
@@ -44,12 +51,15 @@
"./packages/config/node_modules/@babel/traverse/lib/path/conversion.js",
"./packages/config/node_modules/@babel/traverse/lib/path/family.js",
"./packages/config/node_modules/@babel/traverse/lib/path/introspection.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/core.js",
"./packages/data-context/node_modules/debug/src/node.js",
"./packages/data-context/node_modules/minimatch/minimatch.js",
"./packages/graphql/node_modules/debug/src/node.js",
"./packages/https-proxy/lib/ca.js",
"./packages/net-stubbing/node_modules/debug/src/node.js",
"./packages/network/node_modules/minimatch/minimatch.js",
+ "./packages/proxy/lib/http/util/prerequests.ts",
+ "./packages/server/lib/browsers/index.ts",
"./packages/server/lib/browsers/utils.ts",
"./packages/server/lib/capture.js",
"./packages/server/lib/cloud/exception.ts",
@@ -73,9 +83,47 @@
"./ws/lib/websocket.js"
],
"deferred": [
+ "./node_modules/@ampproject/remapping/dist/remapping.umd.js",
+ "./node_modules/@babel/core/lib/config/config-chain.js",
+ "./node_modules/@babel/core/lib/config/config-descriptors.js",
+ "./node_modules/@babel/core/lib/config/files/configuration.js",
+ "./node_modules/@babel/core/lib/config/files/import-meta-resolve.js",
+ "./node_modules/@babel/core/lib/config/files/plugins.js",
+ "./node_modules/@babel/core/lib/config/full.js",
+ "./node_modules/@babel/core/lib/config/helpers/config-api.js",
+ "./node_modules/@babel/core/lib/config/index.js",
+ "./node_modules/@babel/core/lib/config/item.js",
+ "./node_modules/@babel/core/lib/config/partial.js",
+ "./node_modules/@babel/core/lib/config/pattern-to-regex.js",
+ "./node_modules/@babel/core/lib/gensync-utils/fs.js",
+ "./node_modules/@babel/core/lib/tools/build-external-helpers.js",
+ "./node_modules/@babel/core/lib/transformation/file/file.js",
+ "./node_modules/@babel/core/lib/transformation/normalize-file.js",
+ "./node_modules/@babel/core/node_modules/semver/semver.js",
"./node_modules/@babel/generator/lib/node/index.js",
"./node_modules/@babel/generator/lib/node/whitespace.js",
- "./node_modules/@babel/types/lib/definitions/core.js",
+ "./node_modules/@babel/helper-compilation-targets/node_modules/semver/semver.js",
+ "./node_modules/@babel/helper-module-transforms/lib/index.js",
+ "./node_modules/@babel/traverse/lib/context.js",
+ "./node_modules/@babel/traverse/lib/path/context.js",
+ "./node_modules/@babel/traverse/lib/path/index.js",
+ "./node_modules/@babel/traverse/lib/path/modification.js",
+ "./node_modules/@babel/traverse/lib/path/removal.js",
+ "./node_modules/@babel/traverse/lib/path/replacement.js",
+ "./node_modules/@babel/traverse/lib/traverse-node.js",
+ "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
+ "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
+ "./node_modules/@babel/types/lib/builders/generated/index.js",
+ "./node_modules/@babel/types/lib/builders/generated/uppercase.js",
+ "./node_modules/@babel/types/lib/builders/react/buildChildren.js",
+ "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
+ "./node_modules/@babel/types/lib/builders/validateNode.js",
+ "./node_modules/@babel/types/lib/converters/ensureBlock.js",
+ "./node_modules/@babel/types/lib/converters/toBlock.js",
+ "./node_modules/@babel/types/lib/converters/toComputedKey.js",
+ "./node_modules/@babel/types/lib/converters/toSequenceExpression.js",
+ "./node_modules/@babel/types/lib/converters/toStatement.js",
+ "./node_modules/@babel/types/lib/converters/valueToNode.js",
"./node_modules/@babel/types/lib/definitions/experimental.js",
"./node_modules/@babel/types/lib/definitions/flow.js",
"./node_modules/@babel/types/lib/definitions/index.js",
@@ -85,18 +133,20 @@
"./node_modules/@babel/types/lib/definitions/typescript.js",
"./node_modules/@babel/types/lib/definitions/utils.js",
"./node_modules/@babel/types/lib/index.js",
+ "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
+ "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
+ "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
"./node_modules/@babel/types/lib/validators/is.js",
"./node_modules/@babel/types/lib/validators/isPlaceholderType.js",
"./node_modules/@babel/types/lib/validators/isType.js",
"./node_modules/@babel/types/lib/validators/validate.js",
+ "./node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js",
"./node_modules/@cypress/commit-info/node_modules/debug/src/index.js",
"./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js",
"./node_modules/@cypress/commit-info/node_modules/semver/semver.js",
"./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js",
"./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js",
- "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/index.js",
- "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/registry.js",
"./node_modules/@cypress/request-promise/lib/rp.js",
"./node_modules/@cypress/request/index.js",
"./node_modules/@cypress/request/lib/helpers.js",
@@ -135,6 +185,7 @@
"./node_modules/@jimp/plugins/dist/index.js",
"./node_modules/@jimp/tiff/dist/index.js",
"./node_modules/@jimp/types/dist/index.js",
+ "./node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js",
"./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js",
"./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js",
"./node_modules/@kwsites/file-exists/dist/index.js",
@@ -214,6 +265,7 @@
"./node_modules/compression/node_modules/safe-buffer/index.js",
"./node_modules/concat-stream/index.js",
"./node_modules/config-chain/index.js",
+ "./node_modules/convert-source-map/node_modules/safe-buffer/index.js",
"./node_modules/cp-file/cp-file-error.js",
"./node_modules/cp-file/fs.js",
"./node_modules/cp-file/progress-emitter.js",
@@ -245,6 +297,7 @@
"./node_modules/encoding/node_modules/iconv-lite/encodings/index.js",
"./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js",
"./node_modules/encoding/node_modules/iconv-lite/lib/index.js",
+ "./node_modules/esutils/lib/code.js",
"./node_modules/evil-dns/evil-dns.js",
"./node_modules/execa/node_modules/get-stream/buffer-stream.js",
"./node_modules/express-graphql/index.js",
@@ -488,6 +541,11 @@
"./node_modules/pseudomap/map.js",
"./node_modules/pumpify/index.js",
"./node_modules/queue/index.js",
+ "./node_modules/react-docgen/dist/babelParser.js",
+ "./node_modules/react-docgen/dist/importer/index.js",
+ "./node_modules/react-docgen/dist/importer/makeFsImporter.js",
+ "./node_modules/react-docgen/dist/main.js",
+ "./node_modules/react-docgen/dist/parse.js",
"./node_modules/readable-stream/lib/_stream_duplex.js",
"./node_modules/readable-stream/lib/_stream_passthrough.js",
"./node_modules/readable-stream/lib/_stream_readable.js",
@@ -631,16 +689,39 @@
"./packages/config/node_modules/@babel/traverse/lib/path/modification.js",
"./packages/config/node_modules/@babel/traverse/lib/path/removal.js",
"./packages/config/node_modules/@babel/traverse/lib/path/replacement.js",
- "./packages/config/node_modules/@babel/traverse/lib/scope/index.js",
- "./packages/config/src/ast-utils/addToCypressConfig.ts",
- "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts",
- "./packages/config/src/browser.ts",
- "./packages/config/src/index.ts",
"./packages/config/src/options.ts",
- "./packages/config/src/project/index.ts",
- "./packages/config/src/project/utils.ts",
- "./packages/config/src/validation.ts",
"./packages/data-context/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/whitespace.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/validateNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/ensureBlock.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBlock.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toComputedKey.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toSequenceExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toStatement.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/valueToNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/experimental.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/flow.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/jsx.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/misc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/placeholders.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/typescript.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/utils.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/is.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isPlaceholderType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isType.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/validate.js",
"./packages/data-context/node_modules/chokidar/index.js",
"./packages/data-context/node_modules/chokidar/lib/constants.js",
"./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js",
@@ -659,39 +740,23 @@
"./packages/data-context/src/DataActions.ts",
"./packages/data-context/src/DataContext.ts",
"./packages/data-context/src/actions/DataEmitterActions.ts",
- "./packages/data-context/src/actions/EventCollectorActions.ts",
"./packages/data-context/src/actions/MigrationActions.ts",
- "./packages/data-context/src/actions/WizardActions.ts",
"./packages/data-context/src/actions/index.ts",
- "./packages/data-context/src/codegen/code-generator.ts",
"./packages/data-context/src/codegen/index.ts",
"./packages/data-context/src/codegen/templates.ts",
- "./packages/data-context/src/data/EventRegistrar.ts",
"./packages/data-context/src/data/LegacyPluginsIpc.ts",
"./packages/data-context/src/data/ProjectConfigIpc.ts",
- "./packages/data-context/src/data/ProjectConfigManager.ts",
"./packages/data-context/src/data/index.ts",
"./packages/data-context/src/globalPubSub.ts",
"./packages/data-context/src/index.ts",
"./packages/data-context/src/sources/BrowserDataSource.ts",
- "./packages/data-context/src/sources/CloudDataSource.ts",
- "./packages/data-context/src/sources/FileDataSource.ts",
- "./packages/data-context/src/sources/GitDataSource.ts",
- "./packages/data-context/src/sources/GraphQLDataSource.ts",
- "./packages/data-context/src/sources/HtmlDataSource.ts",
"./packages/data-context/src/sources/MigrationDataSource.ts",
- "./packages/data-context/src/sources/ProjectDataSource.ts",
- "./packages/data-context/src/sources/RemotePollingDataSource.ts",
- "./packages/data-context/src/sources/VersionsDataSource.ts",
"./packages/data-context/src/sources/index.ts",
"./packages/data-context/src/sources/migration/autoRename.ts",
"./packages/data-context/src/sources/migration/codegen.ts",
"./packages/data-context/src/sources/migration/format.ts",
"./packages/data-context/src/sources/migration/index.ts",
"./packages/data-context/src/sources/migration/shouldShowSteps.ts",
- "./packages/data-context/src/sources/migration/utils.ts",
- "./packages/data-context/src/util/config-file-updater.ts",
- "./packages/data-context/src/util/index.ts",
"./packages/electron/index.js",
"./packages/electron/lib/electron.js",
"./packages/electron/node_modules/get-stream/buffer-stream.js",
@@ -711,102 +776,29 @@
"./packages/graphql/node_modules/ws/lib/websocket-server.js",
"./packages/graphql/node_modules/ws/lib/websocket.js",
"./packages/graphql/src/makeGraphQLServer.ts",
- "./packages/graphql/src/plugins/index.ts",
- "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts",
- "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts",
- "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts",
- "./packages/graphql/src/plugins/nexusNodePlugin.ts",
- "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts",
- "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts",
- "./packages/graphql/src/schema.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts",
- "./packages/graphql/src/schemaTypes/enumTypes/index.ts",
"./packages/graphql/src/schemaTypes/index.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts",
- "./packages/graphql/src/schemaTypes/inputTypes/index.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts",
- "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-GenerateSpecResponse.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Migration.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts",
"./packages/graphql/src/schemaTypes/objectTypes/gql-Subscription.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts",
- "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts",
"./packages/graphql/src/schemaTypes/objectTypes/index.ts",
"./packages/graphql/src/schemaTypes/scalarTypes/gql-customScalars.ts",
"./packages/graphql/src/schemaTypes/scalarTypes/index.ts",
- "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts",
- "./packages/graphql/src/schemaTypes/unions/index.ts",
- "./packages/graphql/src/stitching/remoteSchema.ts",
"./packages/graphql/src/stitching/remoteSchemaWrapped.ts",
"./packages/https-proxy/index.js",
"./packages/https-proxy/test/helpers/certs.js",
"./packages/icons/dist/icons.js",
"./packages/icons/index.js",
- "./packages/launcher/lib/browsers.ts",
- "./packages/launcher/lib/darwin/index.ts",
- "./packages/launcher/lib/darwin/util.ts",
- "./packages/launcher/lib/detect.ts",
- "./packages/launcher/lib/linux/index.ts",
- "./packages/launcher/lib/windows/index.ts",
- "./packages/net-stubbing/lib/internal-types.ts",
- "./packages/net-stubbing/lib/server/driver-events.ts",
- "./packages/net-stubbing/lib/server/middleware/error.ts",
- "./packages/net-stubbing/lib/server/middleware/request.ts",
- "./packages/net-stubbing/lib/server/middleware/response.ts",
- "./packages/net-stubbing/lib/server/util.ts",
- "./packages/net-stubbing/lib/types.ts",
"./packages/net-stubbing/node_modules/debug/src/browser.js",
"./packages/net-stubbing/node_modules/debug/src/index.js",
"./packages/net-stubbing/node_modules/supports-color/index.js",
"./packages/network/index.js",
"./packages/network/lib/agent.ts",
- "./packages/network/lib/client-certificates.ts",
- "./packages/network/lib/connect.ts",
- "./packages/network/lib/cors.ts",
- "./packages/network/lib/uri.ts",
"./packages/proxy/index.js",
- "./packages/proxy/lib/http/error-middleware.ts",
"./packages/proxy/lib/http/index.ts",
- "./packages/proxy/lib/http/request-middleware.ts",
"./packages/proxy/lib/http/response-middleware.ts",
- "./packages/proxy/lib/http/util/buffers.ts",
- "./packages/proxy/lib/http/util/prerequests.ts",
"./packages/proxy/lib/http/util/regex-rewriter.ts",
"./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js",
"./packages/proxy/node_modules/iconv-lite/encodings/index.js",
@@ -814,70 +806,40 @@
"./packages/proxy/node_modules/iconv-lite/lib/index.js",
"./packages/resolve-dist/index.js",
"./packages/rewriter/index.js",
- "./packages/rewriter/lib/deferred-source-map-cache.ts",
- "./packages/rewriter/lib/js.ts",
"./packages/rewriter/lib/threads/index.ts",
"./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js",
"./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js",
"./packages/scaffold-config/index.js",
- "./packages/scaffold-config/src/detect.ts",
- "./packages/scaffold-config/src/index.ts",
- "./packages/server/lib/automation/cookies.ts",
- "./packages/server/lib/browsers/browser-cri-client.ts",
- "./packages/server/lib/browsers/cdp_automation.ts",
"./packages/server/lib/browsers/chrome.ts",
- "./packages/server/lib/browsers/cri-client.ts",
- "./packages/server/lib/browsers/electron.ts",
- "./packages/server/lib/browsers/firefox-util.ts",
"./packages/server/lib/browsers/firefox.ts",
- "./packages/server/lib/browsers/index.ts",
- "./packages/server/lib/browsers/webkit-automation.ts",
- "./packages/server/lib/browsers/webkit.ts",
"./packages/server/lib/cache.js",
"./packages/server/lib/cloud/api.ts",
"./packages/server/lib/cloud/auth.ts",
"./packages/server/lib/cloud/routes.ts",
+ "./packages/server/lib/cloud/upload.ts",
"./packages/server/lib/cloud/user.ts",
- "./packages/server/lib/config.ts",
- "./packages/server/lib/controllers/iframes.ts",
"./packages/server/lib/cypress.js",
"./packages/server/lib/environment.js",
- "./packages/server/lib/gui/windows.ts",
+ "./packages/server/lib/files.js",
+ "./packages/server/lib/fixture.js",
"./packages/server/lib/log.js",
- "./packages/server/lib/makeDataContext.ts",
- "./packages/server/lib/modes/interactive.ts",
+ "./packages/server/lib/modes/info.js",
"./packages/server/lib/plugins/dev-server.js",
"./packages/server/lib/plugins/preprocessor.js",
"./packages/server/lib/plugins/run_events.js",
- "./packages/server/lib/project_utils.ts",
- "./packages/server/lib/remote_states.ts",
"./packages/server/lib/reporter.js",
- "./packages/server/lib/routes-ct.ts",
- "./packages/server/lib/routes-e2e.ts",
- "./packages/server/lib/routes.ts",
- "./packages/server/lib/saved_state.ts",
"./packages/server/lib/screenshots.js",
- "./packages/server/lib/server-base.ts",
- "./packages/server/lib/server-ct.ts",
- "./packages/server/lib/server-e2e.ts",
- "./packages/server/lib/socket-base.ts",
- "./packages/server/lib/socket-e2e.ts",
- "./packages/server/lib/unhandled_exceptions.ts",
+ "./packages/server/lib/template_engine.js",
"./packages/server/lib/util/app_data.js",
"./packages/server/lib/util/chrome_policy_check.js",
"./packages/server/lib/util/cookies.ts",
- "./packages/server/lib/util/editors.ts",
- "./packages/server/lib/util/ensure-url.ts",
"./packages/server/lib/util/exit.js",
- "./packages/server/lib/util/file-opener.ts",
- "./packages/server/lib/util/fs.ts",
+ "./packages/server/lib/util/file.js",
"./packages/server/lib/util/glob.js",
- "./packages/server/lib/util/proxy.ts",
- "./packages/server/lib/util/requestedWithAndCredentialManager.ts",
- "./packages/server/lib/util/socket_allowed.ts",
- "./packages/server/lib/util/stream_buffer.ts",
+ "./packages/server/lib/util/profile_cleaner.js",
+ "./packages/server/lib/util/trash.js",
"./packages/server/lib/video_capture.ts",
"./packages/server/node_modules/@benmalka/foxdriver/build/actor.js",
"./packages/server/node_modules/@benmalka/foxdriver/build/browser.js",
@@ -962,6 +924,45 @@
],
"healthy": [
"./node_modules/@babel/code-frame/lib/index.js",
+ "./node_modules/@babel/compat-data/data/native-modules.json",
+ "./node_modules/@babel/compat-data/data/plugins.json",
+ "./node_modules/@babel/compat-data/native-modules.js",
+ "./node_modules/@babel/compat-data/plugins.js",
+ "./node_modules/@babel/core/lib/config/caching.js",
+ "./node_modules/@babel/core/lib/config/files/import.cjs",
+ "./node_modules/@babel/core/lib/config/files/index.js",
+ "./node_modules/@babel/core/lib/config/files/module-types.js",
+ "./node_modules/@babel/core/lib/config/files/package.js",
+ "./node_modules/@babel/core/lib/config/files/utils.js",
+ "./node_modules/@babel/core/lib/config/helpers/deep-array.js",
+ "./node_modules/@babel/core/lib/config/helpers/environment.js",
+ "./node_modules/@babel/core/lib/config/plugin.js",
+ "./node_modules/@babel/core/lib/config/printer.js",
+ "./node_modules/@babel/core/lib/config/resolve-targets.js",
+ "./node_modules/@babel/core/lib/config/util.js",
+ "./node_modules/@babel/core/lib/config/validation/option-assertions.js",
+ "./node_modules/@babel/core/lib/config/validation/options.js",
+ "./node_modules/@babel/core/lib/config/validation/plugins.js",
+ "./node_modules/@babel/core/lib/config/validation/removed.js",
+ "./node_modules/@babel/core/lib/errors/config-error.js",
+ "./node_modules/@babel/core/lib/errors/rewrite-stack-trace.js",
+ "./node_modules/@babel/core/lib/gensync-utils/async.js",
+ "./node_modules/@babel/core/lib/gensync-utils/functional.js",
+ "./node_modules/@babel/core/lib/index.js",
+ "./node_modules/@babel/core/lib/parse.js",
+ "./node_modules/@babel/core/lib/parser/index.js",
+ "./node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js",
+ "./node_modules/@babel/core/lib/transform-ast.js",
+ "./node_modules/@babel/core/lib/transform-file.js",
+ "./node_modules/@babel/core/lib/transform.js",
+ "./node_modules/@babel/core/lib/transformation/block-hoist-plugin.js",
+ "./node_modules/@babel/core/lib/transformation/file/generate.js",
+ "./node_modules/@babel/core/lib/transformation/file/merge-map.js",
+ "./node_modules/@babel/core/lib/transformation/index.js",
+ "./node_modules/@babel/core/lib/transformation/normalize-opts.js",
+ "./node_modules/@babel/core/lib/transformation/plugin-pass.js",
+ "./node_modules/@babel/core/lib/transformation/util/clone-deep.js",
+ "./node_modules/@babel/core/lib/vendor/import-meta-resolve.js",
"./node_modules/@babel/generator/lib/buffer.js",
"./node_modules/@babel/generator/lib/generators/base.js",
"./node_modules/@babel/generator/lib/generators/classes.js",
@@ -979,23 +980,37 @@
"./node_modules/@babel/generator/lib/node/parentheses.js",
"./node_modules/@babel/generator/lib/printer.js",
"./node_modules/@babel/generator/lib/source-map.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js",
- "./node_modules/@babel/generator/node_modules/source-map/lib/util.js",
- "./node_modules/@babel/generator/node_modules/source-map/source-map.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/debug.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/filter-items.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/index.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/options.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/pretty.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/targets.js",
+ "./node_modules/@babel/helper-compilation-targets/lib/utils.js",
+ "./node_modules/@babel/helper-environment-visitor/lib/index.js",
"./node_modules/@babel/helper-function-name/lib/index.js",
"./node_modules/@babel/helper-hoist-variables/lib/index.js",
+ "./node_modules/@babel/helper-module-imports/lib/import-builder.js",
+ "./node_modules/@babel/helper-module-imports/lib/import-injector.js",
+ "./node_modules/@babel/helper-module-imports/lib/index.js",
+ "./node_modules/@babel/helper-module-imports/lib/is-module.js",
+ "./node_modules/@babel/helper-module-transforms/lib/dynamic-import.js",
+ "./node_modules/@babel/helper-module-transforms/lib/get-module-name.js",
+ "./node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js",
+ "./node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js",
+ "./node_modules/@babel/helper-module-transforms/lib/rewrite-this.js",
+ "./node_modules/@babel/helper-simple-access/lib/index.js",
"./node_modules/@babel/helper-split-export-declaration/lib/index.js",
+ "./node_modules/@babel/helper-string-parser/lib/index.js",
"./node_modules/@babel/helper-validator-identifier/lib/identifier.js",
"./node_modules/@babel/helper-validator-identifier/lib/index.js",
"./node_modules/@babel/helper-validator-identifier/lib/keyword.js",
+ "./node_modules/@babel/helper-validator-option/lib/find-suggestion.js",
+ "./node_modules/@babel/helper-validator-option/lib/index.js",
+ "./node_modules/@babel/helper-validator-option/lib/validator.js",
+ "./node_modules/@babel/helpers/lib/helpers-generated.js",
+ "./node_modules/@babel/helpers/lib/helpers.js",
+ "./node_modules/@babel/helpers/lib/index.js",
"./node_modules/@babel/highlight/lib/index.js",
"./node_modules/@babel/parser/lib/index.js",
"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js",
@@ -1031,16 +1046,24 @@
"./node_modules/@babel/template/lib/parse.js",
"./node_modules/@babel/template/lib/populate.js",
"./node_modules/@babel/template/lib/string.js",
+ "./node_modules/@babel/traverse/lib/cache.js",
+ "./node_modules/@babel/traverse/lib/hub.js",
+ "./node_modules/@babel/traverse/lib/path/ancestry.js",
+ "./node_modules/@babel/traverse/lib/path/evaluation.js",
+ "./node_modules/@babel/traverse/lib/path/inference/index.js",
+ "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js",
+ "./node_modules/@babel/traverse/lib/path/inference/inferers.js",
+ "./node_modules/@babel/traverse/lib/path/inference/util.js",
+ "./node_modules/@babel/traverse/lib/path/lib/hoister.js",
+ "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js",
+ "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js",
+ "./node_modules/@babel/traverse/lib/scope/binding.js",
+ "./node_modules/@babel/traverse/lib/scope/index.js",
+ "./node_modules/@babel/traverse/lib/scope/lib/renamer.js",
+ "./node_modules/@babel/traverse/lib/visitors.js",
"./node_modules/@babel/types/lib/asserts/assertNode.js",
"./node_modules/@babel/types/lib/asserts/generated/index.js",
"./node_modules/@babel/types/lib/ast-types/generated/index.js",
- "./node_modules/@babel/types/lib/builders/builder.js",
- "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js",
- "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js",
- "./node_modules/@babel/types/lib/builders/generated/index.js",
- "./node_modules/@babel/types/lib/builders/generated/uppercase.js",
- "./node_modules/@babel/types/lib/builders/react/buildChildren.js",
- "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js",
"./node_modules/@babel/types/lib/clone/clone.js",
"./node_modules/@babel/types/lib/clone/cloneDeep.js",
"./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js",
@@ -1055,21 +1078,13 @@
"./node_modules/@babel/types/lib/comments/removeComments.js",
"./node_modules/@babel/types/lib/constants/generated/index.js",
"./node_modules/@babel/types/lib/constants/index.js",
- "./node_modules/@babel/types/lib/converters/ensureBlock.js",
"./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js",
"./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js",
- "./node_modules/@babel/types/lib/converters/toBlock.js",
- "./node_modules/@babel/types/lib/converters/toComputedKey.js",
"./node_modules/@babel/types/lib/converters/toExpression.js",
"./node_modules/@babel/types/lib/converters/toIdentifier.js",
"./node_modules/@babel/types/lib/converters/toKeyAlias.js",
- "./node_modules/@babel/types/lib/converters/toSequenceExpression.js",
- "./node_modules/@babel/types/lib/converters/toStatement.js",
- "./node_modules/@babel/types/lib/converters/valueToNode.js",
- "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js",
"./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js",
"./node_modules/@babel/types/lib/modifications/inherits.js",
- "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js",
"./node_modules/@babel/types/lib/modifications/removeProperties.js",
"./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js",
"./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js",
@@ -1078,7 +1093,6 @@
"./node_modules/@babel/types/lib/traverse/traverse.js",
"./node_modules/@babel/types/lib/traverse/traverseFast.js",
"./node_modules/@babel/types/lib/utils/inherit.js",
- "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js",
"./node_modules/@babel/types/lib/utils/shallowEqual.js",
"./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js",
"./node_modules/@babel/types/lib/validators/generated/index.js",
@@ -1097,7 +1111,6 @@
"./node_modules/@babel/types/lib/validators/matchesPattern.js",
"./node_modules/@babel/types/lib/validators/react/isCompatTag.js",
"./node_modules/@babel/types/lib/validators/react/isReactComponent.js",
- "./node_modules/@babel/types/node_modules/to-fast-properties/index.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js",
"./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js",
@@ -1250,6 +1263,7 @@
"./node_modules/@jimp/png/dist/index.js",
"./node_modules/@jimp/utils/dist/index.js",
"./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js",
+ "./node_modules/@jridgewell/set-array/dist/set-array.umd.js",
"./node_modules/@kwsites/promise-deferred/dist/index.js",
"./node_modules/@nodelib/fs.scandir/out/constants.js",
"./node_modules/@nodelib/fs.scandir/out/index.js",
@@ -1412,7 +1426,21 @@
"./node_modules/braces/lib/parse.js",
"./node_modules/braces/lib/stringify.js",
"./node_modules/braces/lib/utils.js",
+ "./node_modules/browserslist/error.js",
+ "./node_modules/browserslist/index.js",
+ "./node_modules/browserslist/node.js",
+ "./node_modules/browserslist/parse.js",
"./node_modules/bytes/index.js",
+ "./node_modules/caniuse-lite/data/agents.js",
+ "./node_modules/caniuse-lite/data/browserVersions.js",
+ "./node_modules/caniuse-lite/data/browsers.js",
+ "./node_modules/caniuse-lite/dist/lib/statuses.js",
+ "./node_modules/caniuse-lite/dist/lib/supported.js",
+ "./node_modules/caniuse-lite/dist/unpacker/agents.js",
+ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js",
+ "./node_modules/caniuse-lite/dist/unpacker/browsers.js",
+ "./node_modules/caniuse-lite/dist/unpacker/feature.js",
+ "./node_modules/caniuse-lite/dist/unpacker/region.js",
"./node_modules/caseless/index.js",
"./node_modules/chalk/node_modules/ansi-styles/index.js",
"./node_modules/chalk/templates.js",
@@ -1528,6 +1556,7 @@
"./node_modules/compression/node_modules/ms/index.js",
"./node_modules/concat-map/index.js",
"./node_modules/content-type/index.js",
+ "./node_modules/convert-source-map/index.js",
"./node_modules/cookie-parser/index.js",
"./node_modules/cookie-parser/node_modules/cookie/index.js",
"./node_modules/cookie-signature/index.js",
@@ -1657,6 +1686,7 @@
"./node_modules/electron-packager/src/prune.js",
"./node_modules/electron-packager/src/targets.js",
"./node_modules/electron-packager/src/unzip.js",
+ "./node_modules/electron-to-chromium/versions.js",
"./node_modules/encodeurl/index.js",
"./node_modules/encoding/lib/encoding.js",
"./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js",
@@ -1686,6 +1716,17 @@
"./node_modules/escape-string-applescript/index.js",
"./node_modules/escape-string-regexp/index.js",
"./node_modules/esprima/dist/esprima.js",
+ "./node_modules/estree-to-babel/lib/comments.js",
+ "./node_modules/estree-to-babel/lib/estree-to-babel.js",
+ "./node_modules/estree-to-babel/lib/get-ast.js",
+ "./node_modules/estree-to-babel/lib/set-class-method.js",
+ "./node_modules/estree-to-babel/lib/set-class-private-name.js",
+ "./node_modules/estree-to-babel/lib/set-class-private-property.js",
+ "./node_modules/estree-to-babel/lib/set-literal.js",
+ "./node_modules/estree-to-babel/lib/traverse-object-expression.js",
+ "./node_modules/esutils/lib/ast.js",
+ "./node_modules/esutils/lib/keyword.js",
+ "./node_modules/esutils/lib/utils.js",
"./node_modules/etag/index.js",
"./node_modules/execa/index.js",
"./node_modules/execa/lib/command.js",
@@ -1902,6 +1943,7 @@
"./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js",
"./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js",
"./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js",
+ "./node_modules/gensync/index.js",
"./node_modules/get-own-enumerable-property-symbols/lib/index.js",
"./node_modules/get-package-info/lib/index.js",
"./node_modules/get-package-info/node_modules/debug/src/debug.js",
@@ -2247,6 +2289,11 @@
"./node_modules/json-buffer/index.js",
"./node_modules/json-schema/lib/validate.js",
"./node_modules/json-stringify-safe/stringify.js",
+ "./node_modules/json5/lib/index.js",
+ "./node_modules/json5/lib/parse.js",
+ "./node_modules/json5/lib/stringify.js",
+ "./node_modules/json5/lib/unicode.js",
+ "./node_modules/json5/lib/util.js",
"./node_modules/jsonlint/lib/jsonlint.js",
"./node_modules/jsprim/lib/jsprim.js",
"./node_modules/junk/index.js",
@@ -2462,6 +2509,7 @@
"./node_modules/mime-types/index.js",
"./node_modules/mime/types.json",
"./node_modules/mimic-response/index.js",
+ "./node_modules/min-indent/index.js",
"./node_modules/minimist/index.js",
"./node_modules/mkdirp/index.js",
"./node_modules/mocha-7.0.1/lib/browser/progress.js",
@@ -2601,6 +2649,8 @@
"./node_modules/node-forge/lib/forge.js",
"./node_modules/node-forge/lib/md.js",
"./node_modules/node-forge/lib/oids.js",
+ "./node_modules/node-releases/data/processed/envs.json",
+ "./node_modules/node-releases/data/release-schedule/release-schedule.json",
"./node_modules/normalize-package-data/lib/extract_description.js",
"./node_modules/normalize-package-data/lib/fixer.js",
"./node_modules/normalize-package-data/lib/make_warning.js",
@@ -3048,6 +3098,101 @@
"./node_modules/range-parser/index.js",
"./node_modules/raw-body/index.js",
"./node_modules/raw-body/node_modules/bytes/index.js",
+ "./node_modules/react-docgen/dist/Documentation.js",
+ "./node_modules/react-docgen/dist/handlers/componentDocblockHandler.js",
+ "./node_modules/react-docgen/dist/handlers/componentMethodsHandler.js",
+ "./node_modules/react-docgen/dist/handlers/componentMethodsJsDocHandler.js",
+ "./node_modules/react-docgen/dist/handlers/defaultPropsHandler.js",
+ "./node_modules/react-docgen/dist/handlers/displayNameHandler.js",
+ "./node_modules/react-docgen/dist/handlers/flowTypeHandler.js",
+ "./node_modules/react-docgen/dist/handlers/index.js",
+ "./node_modules/react-docgen/dist/handlers/propDocBlockHandler.js",
+ "./node_modules/react-docgen/dist/handlers/propTypeCompositionHandler.js",
+ "./node_modules/react-docgen/dist/handlers/propTypeHandler.js",
+ "./node_modules/react-docgen/dist/importer/ignoreImports.js",
+ "./node_modules/react-docgen/dist/resolver/findAllComponentDefinitions.js",
+ "./node_modules/react-docgen/dist/resolver/findAllExportedComponentDefinitions.js",
+ "./node_modules/react-docgen/dist/resolver/findExportedComponentDefinition.js",
+ "./node_modules/react-docgen/dist/resolver/index.js",
+ "./node_modules/react-docgen/dist/utils/docblock.js",
+ "./node_modules/react-docgen/dist/utils/expressionTo.js",
+ "./node_modules/react-docgen/dist/utils/flowUtilityTypes.js",
+ "./node_modules/react-docgen/dist/utils/getClassMemberValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getFlowType.js",
+ "./node_modules/react-docgen/dist/utils/getFlowTypeFromReactComponent.js",
+ "./node_modules/react-docgen/dist/utils/getMemberExpressionRoot.js",
+ "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getMemberValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getMembers.js",
+ "./node_modules/react-docgen/dist/utils/getMethodDocumentation.js",
+ "./node_modules/react-docgen/dist/utils/getNameOrValue.js",
+ "./node_modules/react-docgen/dist/utils/getParameterName.js",
+ "./node_modules/react-docgen/dist/utils/getPropType.js",
+ "./node_modules/react-docgen/dist/utils/getPropertyName.js",
+ "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js",
+ "./node_modules/react-docgen/dist/utils/getTSType.js",
+ "./node_modules/react-docgen/dist/utils/getTypeAnnotation.js",
+ "./node_modules/react-docgen/dist/utils/getTypeParameters.js",
+ "./node_modules/react-docgen/dist/utils/index.js",
+ "./node_modules/react-docgen/dist/utils/isDestructuringAssignment.js",
+ "./node_modules/react-docgen/dist/utils/isExportsOrModuleAssignment.js",
+ "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactChildrenElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactCloneElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactComponentClass.js",
+ "./node_modules/react-docgen/dist/utils/isReactComponentMethod.js",
+ "./node_modules/react-docgen/dist/utils/isReactCreateClassCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactCreateElementCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js",
+ "./node_modules/react-docgen/dist/utils/isReactModuleName.js",
+ "./node_modules/react-docgen/dist/utils/isRequiredPropType.js",
+ "./node_modules/react-docgen/dist/utils/isStatelessComponent.js",
+ "./node_modules/react-docgen/dist/utils/isUnreachableFlowType.js",
+ "./node_modules/react-docgen/dist/utils/match.js",
+ "./node_modules/react-docgen/dist/utils/normalizeClassDefinition.js",
+ "./node_modules/react-docgen/dist/utils/parseJsDoc.js",
+ "./node_modules/react-docgen/dist/utils/postProcessDocumentation.js",
+ "./node_modules/react-docgen/dist/utils/printValue.js",
+ "./node_modules/react-docgen/dist/utils/resolveExportDeclaration.js",
+ "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js",
+ "./node_modules/react-docgen/dist/utils/resolveGenericTypeAnnotation.js",
+ "./node_modules/react-docgen/dist/utils/resolveHOC.js",
+ "./node_modules/react-docgen/dist/utils/resolveObjectKeysToArray.js",
+ "./node_modules/react-docgen/dist/utils/resolveObjectValuesToArray.js",
+ "./node_modules/react-docgen/dist/utils/resolveToModule.js",
+ "./node_modules/react-docgen/dist/utils/resolveToValue.js",
+ "./node_modules/react-docgen/dist/utils/setPropDescription.js",
+ "./node_modules/react-docgen/dist/utils/traverse.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/babel-core.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/babel.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/core-operators.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/core.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es-proposals.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2016.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2017.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2018.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2019.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es2020.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/es6.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/esprima.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/flow.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/jsx.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/type-annotations.js",
+ "./node_modules/react-docgen/node_modules/ast-types/def/typescript.js",
+ "./node_modules/react-docgen/node_modules/ast-types/fork.js",
+ "./node_modules/react-docgen/node_modules/ast-types/gen/namedTypes.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/equiv.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/node-path.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/path-visitor.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/path.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/scope.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/shared.js",
+ "./node_modules/react-docgen/node_modules/ast-types/lib/types.js",
+ "./node_modules/react-docgen/node_modules/ast-types/main.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/doctrine.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/typed.js",
+ "./node_modules/react-docgen/node_modules/doctrine/lib/utility.js",
+ "./node_modules/react-docgen/node_modules/doctrine/package.json",
"./node_modules/readable-stream/lib/internal/streams/destroy.js",
"./node_modules/recast/node_modules/ast-types/def/babel-core.js",
"./node_modules/recast/node_modules/ast-types/def/babel.js",
@@ -3225,6 +3370,7 @@
"./node_modules/strip-bom/index.js",
"./node_modules/strip-eof/index.js",
"./node_modules/strip-final-newline/index.js",
+ "./node_modules/strip-indent/index.js",
"./node_modules/strip-outer/index.js",
"./node_modules/sumchecker/index.js",
"./node_modules/supports-color/node_modules/has-flag/index.js",
@@ -3264,6 +3410,7 @@
"./node_modules/through/index.js",
"./node_modules/timm/lib/timm.js",
"./node_modules/tinycolor2/tinycolor.js",
+ "./node_modules/to-fast-properties/index.js",
"./node_modules/to-readable-stream/index.js",
"./node_modules/to-regex-range/index.js",
"./node_modules/to-regex-range/node_modules/is-number/index.js",
@@ -3504,13 +3651,114 @@
"./packages/config/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js",
"./packages/config/node_modules/@babel/traverse/lib/path/lib/virtual-types.js",
"./packages/config/node_modules/@babel/traverse/lib/scope/binding.js",
+ "./packages/config/node_modules/@babel/traverse/lib/scope/index.js",
"./packages/config/node_modules/@babel/traverse/lib/scope/lib/renamer.js",
"./packages/config/node_modules/@babel/traverse/lib/visitors.js",
+ "./packages/config/src/ast-utils/addToCypressConfig.ts",
+ "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts",
"./packages/config/src/ast-utils/astConfigHelpers.ts",
+ "./packages/config/src/browser.ts",
+ "./packages/config/src/index.ts",
+ "./packages/config/src/project/index.ts",
+ "./packages/config/src/project/utils.ts",
"./packages/config/src/utils.ts",
+ "./packages/config/src/validation.ts",
"./packages/data-context/node_modules/@babel/code-frame/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/buffer.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/base.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/classes.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/expressions.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/flow.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/jsx.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/methods.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/modules.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/statements.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/template-literals.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/types.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/generators/typescript.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/index.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/node/parentheses.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/printer.js",
+ "./packages/data-context/node_modules/@babel/generator/lib/source-map.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/assertNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/ast-types/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/clone.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeep.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComment.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritInnerComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritLeadingComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritTrailingComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritsComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/comments/removeComments.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/constants/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/constants/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toIdentifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toKeyAlias.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/inherits.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removeProperties.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverse.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverseFast.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/inherit.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/utils/shallowEqual.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/generated/index.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBinding.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBlockScoped.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isImmutable.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isLet.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNode.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNodesEquivalent.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isReferenced.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isScope.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isSpecifierDefault.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidES3Identifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidIdentifier.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isVar.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/matchesPattern.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js",
+ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js",
"./packages/data-context/node_modules/@babel/parser/lib/index.js",
"./packages/data-context/node_modules/anymatch/index.js",
+ "./packages/data-context/node_modules/ast-types/def/babel-core.js",
+ "./packages/data-context/node_modules/ast-types/def/babel.js",
+ "./packages/data-context/node_modules/ast-types/def/core-operators.js",
+ "./packages/data-context/node_modules/ast-types/def/core.js",
+ "./packages/data-context/node_modules/ast-types/def/es-proposals.js",
+ "./packages/data-context/node_modules/ast-types/def/es2016.js",
+ "./packages/data-context/node_modules/ast-types/def/es2017.js",
+ "./packages/data-context/node_modules/ast-types/def/es2018.js",
+ "./packages/data-context/node_modules/ast-types/def/es2019.js",
+ "./packages/data-context/node_modules/ast-types/def/es2020.js",
+ "./packages/data-context/node_modules/ast-types/def/es6.js",
+ "./packages/data-context/node_modules/ast-types/def/esprima.js",
+ "./packages/data-context/node_modules/ast-types/def/flow.js",
+ "./packages/data-context/node_modules/ast-types/def/jsx.js",
+ "./packages/data-context/node_modules/ast-types/def/type-annotations.js",
+ "./packages/data-context/node_modules/ast-types/def/typescript.js",
+ "./packages/data-context/node_modules/ast-types/fork.js",
+ "./packages/data-context/node_modules/ast-types/gen/namedTypes.js",
+ "./packages/data-context/node_modules/ast-types/lib/equiv.js",
+ "./packages/data-context/node_modules/ast-types/lib/node-path.js",
+ "./packages/data-context/node_modules/ast-types/lib/path-visitor.js",
+ "./packages/data-context/node_modules/ast-types/lib/path.js",
+ "./packages/data-context/node_modules/ast-types/lib/scope.js",
+ "./packages/data-context/node_modules/ast-types/lib/shared.js",
+ "./packages/data-context/node_modules/ast-types/lib/types.js",
+ "./packages/data-context/node_modules/ast-types/main.js",
"./packages/data-context/node_modules/cross-spawn/index.js",
"./packages/data-context/node_modules/cross-spawn/lib/enoent.js",
"./packages/data-context/node_modules/cross-spawn/lib/parse.js",
@@ -3550,35 +3798,63 @@
"./packages/data-context/node_modules/fs-extra/lib/util/utimes.js",
"./packages/data-context/node_modules/micromatch/index.js",
"./packages/data-context/node_modules/path-key/index.js",
+ "./packages/data-context/node_modules/source-map/lib/array-set.js",
+ "./packages/data-context/node_modules/source-map/lib/base64-vlq.js",
+ "./packages/data-context/node_modules/source-map/lib/base64.js",
+ "./packages/data-context/node_modules/source-map/lib/binary-search.js",
+ "./packages/data-context/node_modules/source-map/lib/mapping-list.js",
+ "./packages/data-context/node_modules/source-map/lib/quick-sort.js",
+ "./packages/data-context/node_modules/source-map/lib/source-map-consumer.js",
+ "./packages/data-context/node_modules/source-map/lib/source-map-generator.js",
+ "./packages/data-context/node_modules/source-map/lib/source-node.js",
+ "./packages/data-context/node_modules/source-map/lib/util.js",
+ "./packages/data-context/node_modules/source-map/source-map.js",
"./packages/data-context/src/actions/AppActions.ts",
"./packages/data-context/src/actions/AuthActions.ts",
"./packages/data-context/src/actions/BrowserActions.ts",
+ "./packages/data-context/src/actions/CodegenActions.ts",
"./packages/data-context/src/actions/CohortsActions.ts",
"./packages/data-context/src/actions/DevActions.ts",
"./packages/data-context/src/actions/ElectronActions.ts",
"./packages/data-context/src/actions/ErrorActions.ts",
+ "./packages/data-context/src/actions/EventCollectorActions.ts",
"./packages/data-context/src/actions/FileActions.ts",
"./packages/data-context/src/actions/LocalSettingsActions.ts",
"./packages/data-context/src/actions/ProjectActions.ts",
"./packages/data-context/src/actions/VersionsActions.ts",
+ "./packages/data-context/src/actions/WizardActions.ts",
+ "./packages/data-context/src/codegen/code-generator.ts",
"./packages/data-context/src/codegen/spec-options.ts",
"./packages/data-context/src/data/CypressEnv.ts",
+ "./packages/data-context/src/data/EventRegistrar.ts",
+ "./packages/data-context/src/data/ProjectConfigManager.ts",
"./packages/data-context/src/data/ProjectLifecycleManager.ts",
"./packages/data-context/src/data/coreDataShape.ts",
"./packages/data-context/src/gen/urql-introspection.gen.ts",
+ "./packages/data-context/src/sources/CloudDataSource.ts",
"./packages/data-context/src/sources/EnvDataSource.ts",
"./packages/data-context/src/sources/ErrorDataSource.ts",
+ "./packages/data-context/src/sources/FileDataSource.ts",
+ "./packages/data-context/src/sources/GitDataSource.ts",
+ "./packages/data-context/src/sources/GraphQLDataSource.ts",
+ "./packages/data-context/src/sources/HtmlDataSource.ts",
+ "./packages/data-context/src/sources/ProjectDataSource.ts",
+ "./packages/data-context/src/sources/RemotePollingDataSource.ts",
"./packages/data-context/src/sources/RemoteRequestDataSource.ts",
"./packages/data-context/src/sources/UtilDataSource.ts",
+ "./packages/data-context/src/sources/VersionsDataSource.ts",
"./packages/data-context/src/sources/WizardDataSource.ts",
"./packages/data-context/src/sources/migration/legacyOptions.ts",
"./packages/data-context/src/sources/migration/parserUtils.ts",
"./packages/data-context/src/sources/migration/regexps.ts",
+ "./packages/data-context/src/sources/migration/utils.ts",
"./packages/data-context/src/util/DocumentNodeBuilder.ts",
"./packages/data-context/src/util/autoBindDebug.ts",
"./packages/data-context/src/util/cached.ts",
+ "./packages/data-context/src/util/config-file-updater.ts",
"./packages/data-context/src/util/file.ts",
"./packages/data-context/src/util/hasTypescript.ts",
+ "./packages/data-context/src/util/index.ts",
"./packages/data-context/src/util/pluginHandlers.ts",
"./packages/data-context/src/util/urqlCacheKeys.ts",
"./packages/data-context/src/util/weightedChoice.ts",
@@ -3624,21 +3900,88 @@
"./packages/graphql/node_modules/ws/lib/subprotocol.js",
"./packages/graphql/node_modules/ws/lib/validation.js",
"./packages/graphql/src/index.ts",
+ "./packages/graphql/src/plugins/index.ts",
+ "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts",
+ "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts",
+ "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts",
+ "./packages/graphql/src/plugins/nexusNodePlugin.ts",
+ "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts",
+ "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts",
+ "./packages/graphql/src/schema.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts",
+ "./packages/graphql/src/schemaTypes/enumTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts",
+ "./packages/graphql/src/schemaTypes/inputTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts",
+ "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentDescriptor.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ReactComponentResponse.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts",
+ "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts",
+ "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts",
+ "./packages/graphql/src/schemaTypes/unions/index.ts",
+ "./packages/graphql/src/stitching/remoteSchema.ts",
"./packages/https-proxy/lib/proxy.js",
"./packages/https-proxy/lib/server.js",
"./packages/https-proxy/lib/util/parse.js",
"./packages/https-proxy/test/helpers/https_server.js",
"./packages/launcher/index.ts",
+ "./packages/launcher/lib/browsers.ts",
+ "./packages/launcher/lib/darwin/index.ts",
+ "./packages/launcher/lib/darwin/util.ts",
+ "./packages/launcher/lib/detect.ts",
"./packages/launcher/lib/errors.ts",
+ "./packages/launcher/lib/linux/index.ts",
"./packages/launcher/lib/types.ts",
"./packages/launcher/lib/utils.ts",
+ "./packages/launcher/lib/windows/index.ts",
"./packages/launcher/node_modules/which/which.js",
"./packages/net-stubbing/lib/external-types.ts",
+ "./packages/net-stubbing/lib/internal-types.ts",
+ "./packages/net-stubbing/lib/server/driver-events.ts",
"./packages/net-stubbing/lib/server/index.ts",
"./packages/net-stubbing/lib/server/intercepted-request.ts",
+ "./packages/net-stubbing/lib/server/middleware/error.ts",
+ "./packages/net-stubbing/lib/server/middleware/request.ts",
+ "./packages/net-stubbing/lib/server/middleware/response.ts",
"./packages/net-stubbing/lib/server/route-matching.ts",
"./packages/net-stubbing/lib/server/state.ts",
"./packages/net-stubbing/lib/server/types.ts",
+ "./packages/net-stubbing/lib/server/util.ts",
+ "./packages/net-stubbing/lib/types.ts",
"./packages/net-stubbing/lib/util.ts",
"./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js",
"./packages/net-stubbing/node_modules/debug/src/common.js",
@@ -3648,10 +3991,17 @@
"./packages/network/lib/allow-destroy.ts",
"./packages/network/lib/blocked.ts",
"./packages/network/lib/ca.ts",
+ "./packages/network/lib/client-certificates.ts",
"./packages/network/lib/concat-stream.ts",
+ "./packages/network/lib/connect.ts",
+ "./packages/network/lib/cors.ts",
"./packages/network/lib/http-utils.ts",
"./packages/network/lib/index.ts",
+ "./packages/network/lib/uri.ts",
+ "./packages/proxy/lib/http/error-middleware.ts",
+ "./packages/proxy/lib/http/request-middleware.ts",
"./packages/proxy/lib/http/util/ast-rewriter.ts",
+ "./packages/proxy/lib/http/util/buffers.ts",
"./packages/proxy/lib/http/util/cookies.ts",
"./packages/proxy/lib/http/util/inject.ts",
"./packages/proxy/lib/http/util/replace_stream.ts",
@@ -3680,10 +4030,12 @@
"./packages/resolve-dist/lib/index.ts",
"./packages/rewriter/lib/async-rewriters.ts",
"./packages/rewriter/lib/constants.json",
+ "./packages/rewriter/lib/deferred-source-map-cache.ts",
"./packages/rewriter/lib/html-rules.ts",
"./packages/rewriter/lib/html.ts",
"./packages/rewriter/lib/index.ts",
"./packages/rewriter/lib/js-rules.ts",
+ "./packages/rewriter/lib/js.ts",
"./packages/rewriter/lib/util/source-maps.ts",
"./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js",
"./packages/rewriter/node_modules/parse5/lib/common/doctype.js",
@@ -3703,19 +4055,30 @@
"./packages/scaffold-config/src/commandFile.ts",
"./packages/scaffold-config/src/component-index-template.ts",
"./packages/scaffold-config/src/dependencies.ts",
+ "./packages/scaffold-config/src/detect.ts",
"./packages/scaffold-config/src/frameworks.ts",
+ "./packages/scaffold-config/src/index.ts",
"./packages/scaffold-config/src/supportFile.ts",
"./packages/server/config/app.json",
"./packages/server/lib/automation/automation.ts",
+ "./packages/server/lib/automation/cookies.ts",
"./packages/server/lib/automation/index.ts",
"./packages/server/lib/automation/screenshot.ts",
"./packages/server/lib/automation/util.ts",
+ "./packages/server/lib/browsers/browser-cri-client.ts",
+ "./packages/server/lib/browsers/cdp_automation.ts",
+ "./packages/server/lib/browsers/cri-client.ts",
+ "./packages/server/lib/browsers/electron.ts",
+ "./packages/server/lib/browsers/firefox-util.ts",
"./packages/server/lib/browsers/protocol.ts",
+ "./packages/server/lib/browsers/webkit-automation.ts",
+ "./packages/server/lib/browsers/webkit.ts",
"./packages/server/lib/cloud/machine_id.js",
- "./packages/server/lib/cloud/upload.ts",
"./packages/server/lib/cohorts.ts",
+ "./packages/server/lib/config.ts",
"./packages/server/lib/controllers/client.js",
"./packages/server/lib/controllers/files.js",
+ "./packages/server/lib/controllers/iframes.ts",
"./packages/server/lib/controllers/reporter.js",
"./packages/server/lib/controllers/runner.ts",
"./packages/server/lib/controllers/spec.js",
@@ -3724,33 +4087,47 @@
"./packages/server/lib/exec.js",
"./packages/server/lib/experiments.ts",
"./packages/server/lib/file_server.js",
- "./packages/server/lib/files.js",
- "./packages/server/lib/fixture.js",
"./packages/server/lib/gui/links.ts",
"./packages/server/lib/gui/menu.js",
+ "./packages/server/lib/gui/windows.ts",
+ "./packages/server/lib/makeDataContext.ts",
"./packages/server/lib/modes/exit.js",
"./packages/server/lib/modes/index.ts",
- "./packages/server/lib/modes/info.js",
+ "./packages/server/lib/modes/interactive.ts",
"./packages/server/lib/modes/pkg.js",
"./packages/server/lib/modes/smoke_test.js",
"./packages/server/lib/override_require.ts",
"./packages/server/lib/plugins/index.ts",
+ "./packages/server/lib/project_utils.ts",
+ "./packages/server/lib/remote_states.ts",
"./packages/server/lib/request.js",
+ "./packages/server/lib/routes-ct.ts",
+ "./packages/server/lib/routes-e2e.ts",
+ "./packages/server/lib/routes.ts",
+ "./packages/server/lib/saved_state.ts",
+ "./packages/server/lib/server-base.ts",
+ "./packages/server/lib/server-ct.ts",
+ "./packages/server/lib/server-e2e.ts",
"./packages/server/lib/session.ts",
+ "./packages/server/lib/socket-base.ts",
+ "./packages/server/lib/socket-e2e.ts",
"./packages/server/lib/studio.ts",
"./packages/server/lib/task.js",
- "./packages/server/lib/template_engine.js",
+ "./packages/server/lib/unhandled_exceptions.ts",
"./packages/server/lib/util/args.js",
"./packages/server/lib/util/cache_buster.js",
"./packages/server/lib/util/ci_provider.js",
"./packages/server/lib/util/class-helpers.ts",
"./packages/server/lib/util/duration.js",
+ "./packages/server/lib/util/editors.ts",
"./packages/server/lib/util/electron-app.js",
+ "./packages/server/lib/util/ensure-url.ts",
"./packages/server/lib/util/env-editors.ts",
"./packages/server/lib/util/env.js",
"./packages/server/lib/util/escape_filename.ts",
- "./packages/server/lib/util/file.js",
+ "./packages/server/lib/util/file-opener.ts",
"./packages/server/lib/util/find_process.js",
+ "./packages/server/lib/util/fs.ts",
"./packages/server/lib/util/get-windows-proxy.js",
"./packages/server/lib/util/headers.js",
"./packages/server/lib/util/human_time.js",
@@ -3762,17 +4139,19 @@
"./packages/server/lib/util/patch-fs.ts",
"./packages/server/lib/util/performance_benchmark.js",
"./packages/server/lib/util/print-run.ts",
- "./packages/server/lib/util/profile_cleaner.js",
+ "./packages/server/lib/util/proxy.ts",
"./packages/server/lib/util/random.js",
+ "./packages/server/lib/util/requestedWithAndCredentialManager.ts",
"./packages/server/lib/util/server_destroy.ts",
"./packages/server/lib/util/shell.js",
+ "./packages/server/lib/util/socket_allowed.ts",
"./packages/server/lib/util/spec_writer.ts",
"./packages/server/lib/util/status_code.js",
+ "./packages/server/lib/util/stream_buffer.ts",
"./packages/server/lib/util/system.js",
"./packages/server/lib/util/terminal-size.js",
"./packages/server/lib/util/terminal.js",
"./packages/server/lib/util/tests_utils.ts",
- "./packages/server/lib/util/trash.js",
"./packages/server/lib/util/tty.js",
"./packages/server/node_modules/@babel/parser/lib/index.js",
"./packages/server/node_modules/@benmalka/foxdriver/build/index.js",
@@ -3935,5 +4314,5 @@
"./tooling/v8-snapshot/cache/win32/snapshot-entry.js"
],
"deferredHashFile": "yarn.lock",
- "deferredHash": "6bff2b4a0636a23966e12f6240c9e2104b4791a4d5f96d03ed37720a6eb936b3"
+ "deferredHash": "a1a5d22d76eefa1836ceb6b8e9547babb50233b12bc5b5f78a08ea14c7208d1b"
}
\ No newline at end of file
diff --git a/tooling/v8-snapshot/package.json b/tooling/v8-snapshot/package.json
index 7bf3d70367ad..d8626191c2e6 100644
--- a/tooling/v8-snapshot/package.json
+++ b/tooling/v8-snapshot/package.json
@@ -43,18 +43,18 @@
],
"types": "src/v8-snapshot.ts",
"optionalDependencies": {
- "@cypress/snapbuild-android-arm64": "1.0.1",
- "@cypress/snapbuild-darwin-64": "1.0.1",
- "@cypress/snapbuild-darwin-arm64": "1.0.1",
- "@cypress/snapbuild-freebsd-64": "1.0.1",
- "@cypress/snapbuild-freebsd-arm64": "1.0.1",
- "@cypress/snapbuild-linux-32": "1.0.1",
- "@cypress/snapbuild-linux-64": "1.0.1",
- "@cypress/snapbuild-linux-arm": "1.0.1",
- "@cypress/snapbuild-linux-arm64": "1.0.1",
- "@cypress/snapbuild-linux-mips64le": "1.0.1",
- "@cypress/snapbuild-linux-ppc64le": "1.0.1",
- "@cypress/snapbuild-windows-32": "1.0.1",
- "@cypress/snapbuild-windows-64": "1.0.1"
+ "@cypress/snapbuild-android-arm64": "1.0.2",
+ "@cypress/snapbuild-darwin-64": "1.0.2",
+ "@cypress/snapbuild-darwin-arm64": "1.0.2",
+ "@cypress/snapbuild-freebsd-64": "1.0.2",
+ "@cypress/snapbuild-freebsd-arm64": "1.0.2",
+ "@cypress/snapbuild-linux-32": "1.0.2",
+ "@cypress/snapbuild-linux-64": "1.0.2",
+ "@cypress/snapbuild-linux-arm": "1.0.2",
+ "@cypress/snapbuild-linux-arm64": "1.0.2",
+ "@cypress/snapbuild-linux-mips64le": "1.0.2",
+ "@cypress/snapbuild-linux-ppc64le": "1.0.2",
+ "@cypress/snapbuild-windows-32": "1.0.2",
+ "@cypress/snapbuild-windows-64": "1.0.2"
}
}
diff --git a/tooling/v8-snapshot/src/setup/force-no-rewrite.ts b/tooling/v8-snapshot/src/setup/force-no-rewrite.ts
index 9c69566620e2..64b5fe856212 100644
--- a/tooling/v8-snapshot/src/setup/force-no-rewrite.ts
+++ b/tooling/v8-snapshot/src/setup/force-no-rewrite.ts
@@ -71,4 +71,5 @@ export default [
'node_modules/prettier/third-party.js',
'packages/server/node_modules/is-ci/index.js',
'packages/server/node_modules/ci-info/index.js',
+ 'node_modules/@babel/traverse/lib/index.js',
]
diff --git a/yarn.lock b/yarn.lock
index d24800a14f08..ea480c30360e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -824,17 +824,17 @@
dependencies:
"@babel/highlight" "^7.8.3"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.5", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.9.0":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2"
- integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==
+"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.5", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.9.0":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733"
+ integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==
"@babel/core@7.6.0":
version "7.6.0"
@@ -878,28 +878,28 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@^7", "@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.17.2", "@babel/core@^7.17.9", "@babel/core@^7.4.5", "@babel/core@^7.5.4":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe"
- integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==
+"@babel/core@^7", "@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.17.2", "@babel/core@^7.17.9", "@babel/core@^7.4.5", "@babel/core@^7.5.4", "@babel/core@^7.7.5":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113"
+ integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==
dependencies:
"@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.9"
- "@babel/helper-compilation-targets" "^7.17.7"
- "@babel/helper-module-transforms" "^7.17.7"
- "@babel/helpers" "^7.17.9"
- "@babel/parser" "^7.17.9"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.9"
- "@babel/types" "^7.17.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.20.5"
+ "@babel/helper-compilation-targets" "^7.20.0"
+ "@babel/helper-module-transforms" "^7.20.2"
+ "@babel/helpers" "^7.20.5"
+ "@babel/parser" "^7.20.5"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.5"
+ "@babel/types" "^7.20.5"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.1"
semver "^6.3.0"
-"@babel/generator@7.17.9", "@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.17.9", "@babel/generator@^7.4.0", "@babel/generator@^7.5.0", "@babel/generator@^7.6.0", "@babel/generator@^7.9.0":
+"@babel/generator@7.17.9":
version "7.17.9"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc"
integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==
@@ -908,6 +908,15 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.12.11", "@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.17.9", "@babel/generator@^7.20.5", "@babel/generator@^7.4.0", "@babel/generator@^7.5.0", "@babel/generator@^7.6.0", "@babel/generator@^7.9.0":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95"
+ integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==
+ dependencies:
+ "@babel/types" "^7.20.5"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ jsesc "^2.5.1"
+
"@babel/helper-annotate-as-pure@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
@@ -923,14 +932,14 @@
"@babel/helper-explode-assignable-expression" "^7.16.7"
"@babel/types" "^7.16.7"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.8.7":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46"
- integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.8.7":
+ version "7.20.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a"
+ integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==
dependencies:
- "@babel/compat-data" "^7.17.7"
- "@babel/helper-validator-option" "^7.16.7"
- browserslist "^4.17.5"
+ "@babel/compat-data" "^7.20.0"
+ "@babel/helper-validator-option" "^7.18.6"
+ browserslist "^4.21.3"
semver "^6.3.0"
"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.8.3":
@@ -991,12 +1000,10 @@
resolve "^1.14.2"
semver "^6.1.2"
-"@babel/helper-environment-visitor@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
- integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
- dependencies:
- "@babel/types" "^7.16.7"
+"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
+ integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
"@babel/helper-explode-assignable-expression@^7.16.7":
version "7.16.7"
@@ -1005,20 +1012,20 @@
dependencies:
"@babel/types" "^7.16.7"
-"@babel/helper-function-name@^7.15.4", "@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9", "@babel/helper-function-name@^7.8.3":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12"
- integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==
+"@babel/helper-function-name@^7.15.4", "@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.8.3":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
+ integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
dependencies:
- "@babel/template" "^7.16.7"
- "@babel/types" "^7.17.0"
+ "@babel/template" "^7.18.10"
+ "@babel/types" "^7.19.0"
-"@babel/helper-hoist-variables@^7.15.4", "@babel/helper-hoist-variables@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
- integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
+"@babel/helper-hoist-variables@^7.15.4", "@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
+ integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.6"
"@babel/helper-member-expression-to-functions@^7.16.7":
version "7.16.7"
@@ -1027,26 +1034,26 @@
dependencies:
"@babel/types" "^7.16.7"
-"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.8.3":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
- integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
+"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.8.3":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
+ integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.6"
-"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7", "@babel/helper-module-transforms@^7.9.0":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd"
- integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==
+"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.20.2", "@babel/helper-module-transforms@^7.9.0":
+ version "7.20.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712"
+ integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==
dependencies:
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-simple-access" "^7.17.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/helper-validator-identifier" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.3"
- "@babel/types" "^7.17.0"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.20.2"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.1"
+ "@babel/types" "^7.20.2"
"@babel/helper-optimise-call-expression@^7.16.7":
version "7.16.7"
@@ -1080,12 +1087,12 @@
"@babel/traverse" "^7.16.7"
"@babel/types" "^7.16.7"
-"@babel/helper-simple-access@^7.16.7", "@babel/helper-simple-access@^7.17.7":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367"
- integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==
+"@babel/helper-simple-access@^7.16.7", "@babel/helper-simple-access@^7.20.2":
+ version "7.20.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
+ integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
dependencies:
- "@babel/types" "^7.17.0"
+ "@babel/types" "^7.20.2"
"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
version "7.16.0"
@@ -1094,22 +1101,27 @@
dependencies:
"@babel/types" "^7.16.0"
-"@babel/helper-split-export-declaration@^7.15.4", "@babel/helper-split-export-declaration@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
- integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
+"@babel/helper-split-export-declaration@^7.15.4", "@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
+ integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.6"
-"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6":
+"@babel/helper-string-parser@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
+ integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
+
+"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
version "7.19.1"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
-"@babel/helper-validator-option@^7.12.17", "@babel/helper-validator-option@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
- integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
+"@babel/helper-validator-option@^7.12.17", "@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
+ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
"@babel/helper-wrap-function@^7.16.8":
version "7.16.8"
@@ -1121,14 +1133,14 @@
"@babel/traverse" "^7.16.8"
"@babel/types" "^7.16.8"
-"@babel/helpers@^7.17.9", "@babel/helpers@^7.6.0", "@babel/helpers@^7.9.0":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a"
- integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==
+"@babel/helpers@^7.20.5", "@babel/helpers@^7.6.0", "@babel/helpers@^7.9.0":
+ version "7.20.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763"
+ integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==
dependencies:
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.9"
- "@babel/types" "^7.17.0"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.5"
+ "@babel/types" "^7.20.5"
"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6", "@babel/highlight@^7.8.3":
version "7.18.6"
@@ -1149,7 +1161,7 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz#043b9aa3c303c0722e5377fef9197f4cf1796549"
integrity sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==
-"@babel/parser@^7", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.13.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.16.4", "@babel/parser@^7.16.5", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0", "@babel/parser@^7.9.6":
+"@babel/parser@^7", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.13.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.16.4", "@babel/parser@^7.16.5", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0", "@babel/parser@^7.9.6":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
@@ -2180,14 +2192,14 @@
resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.19.0.tgz#23cbe261557a72dcc58ba56c3a2125944a251c4f"
integrity sha512-P8lYynBl10MYpgkhGEV1fOsGDE/6lQSYp+e2YvqUPMWHT4JaQrOkM49FizjswrRzJ6KZTgG6ZY90/1GYvAR3/Q==
-"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.4.0", "@babel/template@^7.5.4", "@babel/template@^7.6.0", "@babel/template@^7.8.6":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
- integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
+"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.4.0", "@babel/template@^7.5.4", "@babel/template@^7.6.0", "@babel/template@^7.8.6":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
+ integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/parser" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.18.10"
+ "@babel/types" "^7.18.10"
"@babel/traverse@7.15.4":
version "7.15.4"
@@ -2204,19 +2216,19 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d"
- integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.9", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133"
+ integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==
dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.9"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.17.9"
- "@babel/types" "^7.17.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.20.5"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.20.5"
+ "@babel/types" "^7.20.5"
debug "^4.1.0"
globals "^11.1.0"
@@ -2228,7 +2240,7 @@
"@babel/helper-validator-identifier" "^7.14.9"
to-fast-properties "^2.0.0"
-"@babel/types@7.17.0", "@babel/types@^7", "@babel/types@^7.0.0", "@babel/types@^7.13.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0", "@babel/types@^7.6.0", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.9.0", "@babel/types@^7.9.6":
+"@babel/types@7.17.0":
version "7.17.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b"
integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
@@ -2236,6 +2248,15 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
+"@babel/types@^7", "@babel/types@^7.0.0", "@babel/types@^7.13.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.2.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0", "@babel/types@^7.6.0", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.9.0", "@babel/types@^7.9.6":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84"
+ integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ to-fast-properties "^2.0.0"
+
"@bahmutov/all-paths@1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@bahmutov/all-paths/-/all-paths-1.0.2.tgz#9ae0dcdf9022dd6e5e14d7fda3479e6a330d035b"
@@ -2470,70 +2491,70 @@
resolved "https://registry.yarnpkg.com/@cypress/sinon-chai/-/sinon-chai-2.9.1.tgz#1705c0341bc286740979b1b1cac89b7f5d34d6bc"
integrity sha512-qwFQ1urghF3mv7CFSDw/LEqIQP12qqKLuW7p6mXR92HP5fPNlgNiZVITWVsupDg7JpOEKfeRTVearo9mkk/5eg==
-"@cypress/snapbuild-android-arm64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-android-arm64/-/snapbuild-android-arm64-1.0.1.tgz#f4f67ee22e4dcd4738499dc6e16af6dd50dc3268"
- integrity sha512-I8gM7t63gL78+NcP1zNQBgzsyp7xRlFiZhMzn5F0LAX/TrT8tZGctZEWNjPbl3M8JLCPtat/HrCbhaP1h+0Y4g==
+"@cypress/snapbuild-android-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-android-arm64/-/snapbuild-android-arm64-1.0.2.tgz#43d0e193c13930b8900ade8200a8aa15c0ef73c9"
+ integrity sha512-msqrFAt4ioonTsAaZbiohfYXPVlsLo3saSiO0Ko7pw9l5O1Zeiqbb6t0hNwl7OC7fYjC7anxc0jePLm0K6/New==
-"@cypress/snapbuild-darwin-64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-darwin-64/-/snapbuild-darwin-64-1.0.1.tgz#ce4a7b9734fcc569e5084d25deabb8a7e57c5c39"
- integrity sha512-wOZgJ1Hp7I5hent4LLmhlh61vomkHUe7J013pjwQ6JJc+PhAjxFc3h6HocvY4IzRXR1JnvL/9yJjmyY090ahKw==
+"@cypress/snapbuild-darwin-64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-darwin-64/-/snapbuild-darwin-64-1.0.2.tgz#3379c2d3c09440ed29e5ea0c8b84053aa545aa49"
+ integrity sha512-9qoWohdHKb6HsMdROQBBDlT6CmJXT3FMQSbN1pQpe37S9JxYoFEiJlQ13x+MI58TeqeGrLxoMk1z1bZ78kUBNA==
-"@cypress/snapbuild-darwin-arm64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-darwin-arm64/-/snapbuild-darwin-arm64-1.0.1.tgz#a98b61d2732941e69315dc83f4e1cec9b6fdd27d"
- integrity sha512-gPYdoOzTyVcs93HTgfhMmEgcH5QP95/fAfcLeFSIVaNYhgIMg0YeyysmjLRcHdYaJ7m31px307+q6zvMYY/paw==
+"@cypress/snapbuild-darwin-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-darwin-arm64/-/snapbuild-darwin-arm64-1.0.2.tgz#d66ff4ada6322186539c669ed269bb47a740f866"
+ integrity sha512-XYj/paXiw4T4WMpcRnip/RqZNwkJv3Hdwm/KDIyD4lij4TetQuma80JtGa97P5DGZfYwdHpDlBzg6Sy3XlCL7Q==
-"@cypress/snapbuild-freebsd-64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-freebsd-64/-/snapbuild-freebsd-64-1.0.1.tgz#dd3416a8ed04e7994285a441b329e8c141493415"
- integrity sha512-wtW0oLRH9qjGp2oAQLEnCNXX8sUHXkY1QAUvV26TWBf7f3WODxZ7MAjSVV8L7wYKRcxUnLebcCQ/sYmbAg00cQ==
+"@cypress/snapbuild-freebsd-64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-freebsd-64/-/snapbuild-freebsd-64-1.0.2.tgz#7890dac920fc79c9deb310b88e0a48aa90ed62cc"
+ integrity sha512-sFUFXmrVkgmXCsGAElDkvH2iSY+GozAhZqB3pkNh59Acu6baBytbBkW4G6fTUti+YOI9wDxm3nbnYQmGqHAepw==
-"@cypress/snapbuild-freebsd-arm64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-freebsd-arm64/-/snapbuild-freebsd-arm64-1.0.1.tgz#87d821d8216d17efb9c54a73f435b9123067fe9f"
- integrity sha512-44wIjpi3BShIFmRJd1VCj2dAO02DNxkzYDp0vdMvNRflBr2pXDWdT/TdTkj4l9vBRymQTGCPS/swjlLACCwoqg==
+"@cypress/snapbuild-freebsd-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-freebsd-arm64/-/snapbuild-freebsd-arm64-1.0.2.tgz#a3e60568cb011d3a4bb06840838361ef33940ec9"
+ integrity sha512-tQFo2uTCb4QHpPMC6aD0FyR3oJjIjM5IxDqLf0kVDI1x1zJ0fyZgyADo6npXPBpLu9VXW2wHL5yGLmzS7T5FgA==
-"@cypress/snapbuild-linux-32@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-32/-/snapbuild-linux-32-1.0.1.tgz#ff5b0abbb84d2e1a726f9cd9145c5cfe4f2f2b1a"
- integrity sha512-Mo74hBFwFzr//pX8OuTj3wGxLbngQDAX61gL72HOcgI33gdDXiSyvasuChs8uiH1H3BDxVUvRMxKBSbRVowF4g==
+"@cypress/snapbuild-linux-32@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-32/-/snapbuild-linux-32-1.0.2.tgz#16145141473f95401ef317e67f9add58018b9973"
+ integrity sha512-WiyHQoOVwLhf/KyvMzFQAx1WoPtKg4OX5MbcYks+O6Bl1nT5Sj8nYVm5MkreIeGSIXpCSlN1hjafVidpYx/YlA==
-"@cypress/snapbuild-linux-64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-64/-/snapbuild-linux-64-1.0.1.tgz#be1a0a2c83d27594a1f63c95ed26a70236e7e359"
- integrity sha512-tYPA+O/BiRwOy97H8t7/tdWXVSBJSBHzxngRUPVioIG7Y7HCw9jkIgDV4U8l9uYhmYgDmHFeq6TaJOxmW7bMBg==
+"@cypress/snapbuild-linux-64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-64/-/snapbuild-linux-64-1.0.2.tgz#cf7a37ae3f49082e617394a35c4ff77d92f7e140"
+ integrity sha512-ibye7rd4XV5qAjXt3ObDM9mnslXz7JO7G2C8Ch12hDkNOu5TaAg8qwDD+M4wpTLonplmr/SM2OH9l8498NfsUg==
-"@cypress/snapbuild-linux-arm64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-arm64/-/snapbuild-linux-arm64-1.0.1.tgz#f1ce2e0d13907fb8f7c936422f510175bcbb9e83"
- integrity sha512-y8P0ZVtVtUNTInNWjmxUi0yieD4ci6Gq3zP5uirFO0bwQArEq5IqBAbXuvOY3gu6sMwgnP9bPUTkqOhFPjlJ3w==
+"@cypress/snapbuild-linux-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-arm64/-/snapbuild-linux-arm64-1.0.2.tgz#e3dde3094a78913919bf71786fb62162e30a271c"
+ integrity sha512-jP1p2+6kpLX+TlCXl3E3xH8roM7wyzH/j2ztkFTqqHo+BqESigkJDgrepV2AwnTssc2i8BGyUr4mMW/09KUNog==
-"@cypress/snapbuild-linux-arm@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-arm/-/snapbuild-linux-arm-1.0.1.tgz#89ffb6ee61eee79f99ceb5b0ac1472b52b3f3811"
- integrity sha512-0DPe2yE7ZpCU1y1QPps5Yiry0yvQk9EtOxnhLzI7gbKgyLo2rBekNY2Vp3/ImdiITod6sG0RjaOuFAQl5xaYcw==
+"@cypress/snapbuild-linux-arm@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-arm/-/snapbuild-linux-arm-1.0.2.tgz#67500718f9e8f15838f89e8c0c1dce4f679aac75"
+ integrity sha512-JZL2A9T7E9ILxgYJhFW1All5P6ERLpKJ78HC1G0Rar9X+cMGVFN6TCJ4rY5lpHlGFg77oIKKo028fCD/ag6lgw==
-"@cypress/snapbuild-linux-mips64le@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-mips64le/-/snapbuild-linux-mips64le-1.0.1.tgz#88b82e2381e06ea2f5e871c27c95fc89a9d538eb"
- integrity sha512-0F40yjlA0rtuF1jyfcQgAalE8eOTysiiOr6Gpi7JYHKGajWU4/uvA25woT9pwWRyyVznGvXun6O8bSspV0FyvQ==
+"@cypress/snapbuild-linux-mips64le@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-mips64le/-/snapbuild-linux-mips64le-1.0.2.tgz#86b29af61536d961951e547247b7903c72ea4614"
+ integrity sha512-ZdIcO6/lRoxxSBnC7Rytgvi1+H6flWmEVpJN72DSbWOXdq9J3tH5kNfZvBUQMmaUEot0HJocvWJw37JpI5SpQQ==
-"@cypress/snapbuild-linux-ppc64le@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-ppc64le/-/snapbuild-linux-ppc64le-1.0.1.tgz#14ebed384a0dd9591439ab9e4142d38626c55e11"
- integrity sha512-DxQXKFI8BEjFt0id0joDNHiNIM59kZgJxO10BoArGV/xXMR2VjTHjNQRIoMD/sM6GgpJwC2gF6dRXm9LY9ej0w==
+"@cypress/snapbuild-linux-ppc64le@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-ppc64le/-/snapbuild-linux-ppc64le-1.0.2.tgz#0d69e5fc037813227aba9722dd8966a2df68a853"
+ integrity sha512-AJYB7ImnUVvIwkde0005i+5yW9F7P35XLOAY9GbXng+otwWYMpdH0OO9pLrQW8dV0L2af2ZnxNMxIl78VOFNYw==
-"@cypress/snapbuild-windows-32@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-windows-32/-/snapbuild-windows-32-1.0.1.tgz#ca1137ee529d5250a71845de1b7eefd458d64cf9"
- integrity sha512-FIBdE1Ie0rfhIpE5cBRwNIjcPxwOPMrZ0ppUIOXxTdBTRaSEOO5/bfsGV6Mntg/XMIJRGUGaIKmBoudcnyhkgA==
+"@cypress/snapbuild-windows-32@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-windows-32/-/snapbuild-windows-32-1.0.2.tgz#5b308a25bbbcffbe2f53ceba310b78f8d6a8785b"
+ integrity sha512-lxMeAuD+aNqoGiK38EclkrnA8uFB9HGe/8N1plq/rJ0PSX9AmsfsjZfcdTStoIK9ATV39J1WO5rdFwPH1SUr+g==
-"@cypress/snapbuild-windows-64@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@cypress/snapbuild-windows-64/-/snapbuild-windows-64-1.0.1.tgz#0e03d39f91fe7724c353db863154ea8848140004"
- integrity sha512-lEg02qY4GgaAg7An1EAJSq2AFb1L7v7sARaofyj/R0kYh8PHyOQAOF2Jn9cfI8ltveJ1mh0Nu/ayg24FpwS/sA==
+"@cypress/snapbuild-windows-64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/snapbuild-windows-64/-/snapbuild-windows-64-1.0.2.tgz#cdca8da74f20e5b2926a06b4d2b91ebbe444694e"
+ integrity sha512-5GPLRFLKFz6sn/Nh44s7aWpj18LQBmIh086wbVhGk4RlM29C9iDk3xobAy4WNJbAdLXZsutOT7BtkiRRlEfwtw==
"@cypress/unique-selector@0.4.4":
version "0.4.4"
@@ -3875,7 +3896,7 @@
resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b"
integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
-"@istanbuljs/schema@^0.1.2":
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
@@ -4329,17 +4350,31 @@
"@babel/runtime" "^7.7.2"
regenerator-runtime "^0.13.3"
-"@jridgewell/resolve-uri@^3.0.3":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
- integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
+"@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
+ integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/sourcemap-codec@^1.4.10":
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
- integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
+"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-"@jridgewell/trace-mapping@0.3.9", "@jridgewell/trace-mapping@^0.3.0":
+"@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+"@jridgewell/trace-mapping@0.3.9":
version "0.3.9"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
@@ -4347,6 +4382,14 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.17"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
+ integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
"@kwsites/file-exists@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99"
@@ -9371,7 +9414,7 @@ ast-types@0.13.3:
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7"
integrity sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==
-ast-types@0.14.2:
+ast-types@0.14.2, ast-types@^0.14.2:
version "0.14.2"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==
@@ -11199,16 +11242,15 @@ browserslist@4.7.0:
electron-to-chromium "^1.3.247"
node-releases "^1.1.29"
-browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.6.4, browserslist@^4.8.3, browserslist@^4.9.1:
- version "4.20.2"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88"
- integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==
+browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.19.1, browserslist@^4.21.3, browserslist@^4.6.4, browserslist@^4.8.3, browserslist@^4.9.1:
+ version "4.21.4"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
+ integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
dependencies:
- caniuse-lite "^1.0.30001317"
- electron-to-chromium "^1.4.84"
- escalade "^3.1.1"
- node-releases "^2.0.2"
- picocolors "^1.0.0"
+ caniuse-lite "^1.0.30001400"
+ electron-to-chromium "^1.4.251"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.9"
bser@2.1.1:
version "2.1.1"
@@ -11410,23 +11452,23 @@ bytes@3.1.2, bytes@^3.0.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-c8@^7.10.0:
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/c8/-/c8-7.10.0.tgz#c539ebb15d246b03b0c887165982c49293958a73"
- integrity sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA==
+c8@^7.10.0, c8@^7.6.0:
+ version "7.12.0"
+ resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14"
+ integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@istanbuljs/schema" "^0.1.2"
+ "@istanbuljs/schema" "^0.1.3"
find-up "^5.0.0"
foreground-child "^2.0.0"
- istanbul-lib-coverage "^3.0.1"
+ istanbul-lib-coverage "^3.2.0"
istanbul-lib-report "^3.0.0"
- istanbul-reports "^3.0.2"
- rimraf "^3.0.0"
+ istanbul-reports "^3.1.4"
+ rimraf "^3.0.2"
test-exclude "^6.0.0"
- v8-to-istanbul "^8.0.0"
+ v8-to-istanbul "^9.0.0"
yargs "^16.2.0"
- yargs-parser "^20.2.7"
+ yargs-parser "^20.2.9"
cac@^6.7.3:
version "6.7.3"
@@ -11695,10 +11737,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317:
- version "1.0.30001332"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd"
- integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400:
+ version "1.0.30001435"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz#502c93dbd2f493bee73a408fe98e98fb1dad10b2"
+ integrity sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA==
capital-case@^1.0.4:
version "1.0.4"
@@ -15075,10 +15117,10 @@ electron-publish@22.13.1:
lazy-val "^1.0.5"
mime "^2.5.2"
-electron-to-chromium@^1.3.247, electron-to-chromium@^1.4.84:
- version "1.4.111"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e"
- integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw==
+electron-to-chromium@^1.3.247, electron-to-chromium@^1.4.251:
+ version "1.4.284"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
+ integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
electron@21.0.0:
version "21.0.0"
@@ -16122,6 +16164,15 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+estree-to-babel@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5"
+ integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==
+ dependencies:
+ "@babel/traverse" "^7.1.6"
+ "@babel/types" "^7.2.0"
+ c8 "^7.6.0"
+
estree-walker@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
@@ -20845,7 +20896,7 @@ istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5:
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49"
integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.1:
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
@@ -20899,10 +20950,10 @@ istanbul-reports@^2.2.6:
dependencies:
html-escaper "^2.0.0"
-istanbul-reports@^3.0.2:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c"
- integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==
+istanbul-reports@^3.1.4:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae"
+ integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==
dependencies:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
@@ -24858,7 +24909,7 @@ node-dir@0.1.8:
resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d"
integrity sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=
-node-dir@^0.1.17:
+node-dir@^0.1.10, node-dir@^0.1.17:
version "0.1.17"
resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
@@ -25049,10 +25100,10 @@ node-releases@^1.1.29:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
-node-releases@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96"
- integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==
+node-releases@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
+ integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
node-sass-glob-importer@5.3.2:
version "5.3.2"
@@ -28486,6 +28537,22 @@ react-dev-utils@^9.1.0:
strip-ansi "5.2.0"
text-table "0.2.0"
+react-docgen@6.0.0-alpha.3:
+ version "6.0.0-alpha.3"
+ resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-6.0.0-alpha.3.tgz#4d8a4916b45de4aadb90eb5f3a6f923edf447928"
+ integrity sha512-DDLvB5EV9As1/zoUsct6Iz2Cupw9FObEGD3DMcIs3EDFIoSKyz8FZtoWj3Wj+oodrU4/NfidN0BL5yrapIcTSA==
+ dependencies:
+ "@babel/core" "^7.7.5"
+ "@babel/generator" "^7.12.11"
+ ast-types "^0.14.2"
+ commander "^2.19.0"
+ doctrine "^3.0.0"
+ estree-to-babel "^3.1.0"
+ neo-async "^2.6.1"
+ node-dir "^0.1.10"
+ resolve "^1.17.0"
+ strip-indent "^3.0.0"
+
"react-dom-15.6.1@npm:react-dom@15.6.1":
version "15.6.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470"
@@ -33709,6 +33776,14 @@ upath@^2.0.1:
resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b"
integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==
+update-browserslist-db@^1.0.9:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
+ integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
update-check@1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.2.tgz#2fe09f725c543440b3d7dabe8971f2d5caaedc28"
@@ -33974,14 +34049,14 @@ v8-compile-cache@^2.0.2, v8-compile-cache@^2.0.3:
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
-v8-to-istanbul@^8.0.0:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed"
- integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==
+v8-to-istanbul@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4"
+ integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==
dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
- source-map "^0.7.3"
v8flags@^3.2.0:
version "3.2.0"
@@ -35812,7 +35887,7 @@ yargs-parser@^18.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.7:
+yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==