From 2e3b203277e3e83995df0c47f50db55c0ac92f7e Mon Sep 17 00:00:00 2001 From: Blue F Date: Wed, 1 Feb 2023 12:59:56 -0800 Subject: [PATCH 001/252] breaking: upgrade cy.readFile() to be a query command (#25595) Co-authored-by: Emily Rohrbough Co-authored-by: Matt Henkes --- cli/CHANGELOG.md | 8 + .../cypress/e2e/commands/assertions.cy.js | 11 +- .../driver/cypress/e2e/commands/files.cy.js | 32 ++- .../e2e/e2e/origin/commands/files.cy.ts | 8 +- packages/driver/src/cy/commands/files.ts | 196 ++++++++++-------- .../src/cy/commands/querying/querying.ts | 3 +- packages/driver/src/cypress/error_messages.ts | 6 + packages/driver/src/cypress/log.ts | 6 +- 8 files changed, 148 insertions(+), 122 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 11b5b7fddabc..c5036166c8b0 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,4 +1,12 @@ +## 13.0.0 + +_Released 01/31/2023 (PENDING)_ + +**Breaking Changes:** + +- The [`cy.readFile()`](/api/commands/readfile) command is now retry-able as a [query command](https://on.cypress.io/retry-ability). This should not affect any tests using it; the functionality is unchanged. However, it can no longer be overwritten using [`Cypress.Commands.overwrite()`](/api/cypress-api/custom-commands#Overwrite-Existing-Commands). Addressed in [#25595](https://github.com/cypress-io/cypress/pull/25595). + ## 12.6.0 _Released 02/14/2023 (PENDING)_ diff --git a/packages/driver/cypress/e2e/commands/assertions.cy.js b/packages/driver/cypress/e2e/commands/assertions.cy.js index 03c5db7caf3a..8f5561428269 100644 --- a/packages/driver/cypress/e2e/commands/assertions.cy.js +++ b/packages/driver/cypress/e2e/commands/assertions.cy.js @@ -652,9 +652,14 @@ describe('src/cy/commands/assertions', () => { cy.get('button:first', { timeout: 500 }).should('have.class', 'does-not-have-class') }) - it('has a pending state while retrying for commands with onFail', (done) => { + it('has a pending state while retrying for commands with onFail', function (done) { cy.on('command:retry', () => { - const [readFileLog, shouldLog] = cy.state('current').get('logs') + // Wait for the readFile response to come back from the server + if (this.logs.length < 2) { + return + } + + const [readFileLog, shouldLog] = this.logs expect(readFileLog.get('state')).to.eq('pending') expect(shouldLog.get('state')).to.eq('pending') @@ -662,8 +667,6 @@ describe('src/cy/commands/assertions', () => { done() }) - cy.on('fail', () => {}) - cy.readFile('does-not-exist.json', { timeout: 500 }).should('exist') }) diff --git a/packages/driver/cypress/e2e/commands/files.cy.js b/packages/driver/cypress/e2e/commands/files.cy.js index 8648ee4bae28..a317cc980e23 100644 --- a/packages/driver/cypress/e2e/commands/files.cy.js +++ b/packages/driver/cypress/e2e/commands/files.cy.js @@ -14,6 +14,14 @@ describe('src/cy/commands/files', () => { }) describe('#readFile', () => { + it('really works', () => { + cy.readFile('./cypress/fixtures/fileSpec.json').its('baseUrl').should('eq', 'http://localhost:3500') + }) + + it('works when contents are supposed to be null', () => { + cy.readFile('does-not-exist').should('be.null') + }) + it('triggers \'read:file\' with the right options', () => { Cypress.backend.resolves(okResponse) @@ -80,7 +88,7 @@ describe('src/cy/commands/files', () => { .resolves(okResponse) cy.readFile('foo.json').then(() => { - expect(retries).to.eq(1) + expect(retries).to.eq(2) }) }) @@ -102,18 +110,12 @@ describe('src/cy/commands/files', () => { }) cy.readFile('foo.json').should('eq', 'quux').then(() => { - expect(retries).to.eq(1) + // Two retries: The first one triggers a backend request and throws a 'not ready' error. + // The second gets foobarbaz, triggering another request to the backend. + expect(retries).to.eq(2) }) }) - it('really works', () => { - cy.readFile('./cypress/fixtures/fileSpec.json').its('baseUrl').should('eq', 'http://localhost:3500') - }) - - it('works when contents are supposed to be null', () => { - cy.readFile('does-not-exist').should('be.null') - }) - describe('.log', () => { beforeEach(function () { this.logs = [] @@ -176,10 +178,6 @@ describe('src/cy/commands/files', () => { this.logs = [] - cy.on('fail', () => { - cy.off('log:added', collectLogs) - }) - return null }) @@ -243,7 +241,7 @@ describe('src/cy/commands/files', () => { cy.on('fail', (err) => { const { fileLog } = this - assertLogLength(this.logs, 2) + assertLogLength(this.logs, 3) expect(fileLog.get('error')).to.eq(err) expect(fileLog.get('state')).to.eq('failed') expect(err.message).to.eq(stripIndent`\ @@ -388,7 +386,7 @@ describe('src/cy/commands/files', () => { expect(fileLog.get('error')).to.eq(err) expect(fileLog.get('state')).to.eq('failed') expect(err.message).to.eq(stripIndent`\ - \`cy.readFile("foo")\` timed out after waiting \`10ms\`. + Timed out retrying after 10ms: \`cy.readFile("foo")\` timed out. `) expect(err.docsUrl).to.eq('https://on.cypress.io/readfile') @@ -412,7 +410,7 @@ describe('src/cy/commands/files', () => { expect(fileLog.get('error')).to.eq(err) expect(fileLog.get('state')).to.eq('failed') expect(err.message).to.eq(stripIndent`\ - \`cy.readFile("foo")\` timed out after waiting \`42ms\`. + Timed out retrying after 42ms: \`cy.readFile("foo")\` timed out. `) expect(err.docsUrl).to.eq('https://on.cypress.io/readfile') diff --git a/packages/driver/cypress/e2e/e2e/origin/commands/files.cy.ts b/packages/driver/cypress/e2e/e2e/origin/commands/files.cy.ts index d708b9b9fc94..346e3d99dd54 100644 --- a/packages/driver/cypress/e2e/e2e/origin/commands/files.cy.ts +++ b/packages/driver/cypress/e2e/e2e/origin/commands/files.cy.ts @@ -64,11 +64,11 @@ context('cy.origin files', { browser: '!webkit' }, () => { }) cy.shouldWithTimeout(() => { - const { consoleProps } = findCrossOriginLogs('readFile', logs, 'foobar.com') + const log = findCrossOriginLogs('readFile', logs, 'foobar.com') - expect(consoleProps.Command).to.equal('readFile') - expect(consoleProps['File Path']).to.include('cypress/fixtures/example.json') - expect(consoleProps.Contents).to.deep.equal({ example: true }) + expect(log.consoleProps.Command).to.equal('readFile') + expect(log.consoleProps['File Path']).to.include('cypress/fixtures/example.json') + expect(log.consoleProps.Contents).to.deep.equal({ example: true }) }) }) diff --git a/packages/driver/src/cy/commands/files.ts b/packages/driver/src/cy/commands/files.ts index 02512836a209..e1d63a90707f 100644 --- a/packages/driver/src/cy/commands/files.ts +++ b/packages/driver/src/cy/commands/files.ts @@ -4,9 +4,8 @@ import { basename } from 'path' import $errUtils from '../../cypress/error_utils' import type { Log } from '../../cypress/log' -interface InternalReadFileOptions extends Partial { - _log?: Log - encoding: Cypress.Encodings +interface ReadFileOptions extends Partial { + encoding?: Cypress.Encodings } interface InternalWriteFileOptions extends Partial { @@ -14,108 +13,123 @@ interface InternalWriteFileOptions extends Partial { - Commands.addAll({ - readFile (file, encoding, userOptions: Partial = {}) { - if (_.isObject(encoding)) { - userOptions = encoding - encoding = undefined + Commands.addQuery('readFile', function readFile (file, encoding, options: ReadFileOptions = {}) { + if (_.isObject(encoding)) { + options = encoding + encoding = options.encoding + } + + encoding = encoding === undefined ? 'utf8' : encoding + + const timeout = options.timeout ?? Cypress.config('defaultCommandTimeout') + + this.set('timeout', timeout) + this.set('ensureExistenceFor', 'subject') + + const log = options.log !== false && Cypress.log({ message: file, timeout }) + + if (!file || !_.isString(file)) { + $errUtils.throwErrByPath('files.invalid_argument', { + args: { cmd: 'readFile', file }, + }) + } + + let fileResult: any = null + let filePromise: Promise | null = null + let mostRecentError = $errUtils.cypressErrByPath('files.read_timed_out', { + args: { file }, + }) + + const createFilePromise = () => { + // If we already have a pending request to the backend, we'll wait + // for that one to resolve instead of creating a new one. + if (filePromise) { + return } - const options: InternalReadFileOptions = _.defaults({}, userOptions, { + fileResult = null + filePromise = Cypress.backend('read:file', file, { encoding }) + .timeout(timeout) + .then((result) => { // https://github.com/cypress-io/cypress/issues/1558 - // If no encoding is specified, then Cypress has historically defaulted - // to `utf8`, because of it's focus on text files. This is in contrast to - // NodeJs, which defaults to binary. We allow users to pass in `null` - // to restore the default node behavior. - encoding: encoding === undefined ? 'utf8' : encoding, - log: true, - timeout: Cypress.config('defaultCommandTimeout'), + // https://github.com/cypress-io/cypress/issues/20683 + // We invoke Buffer.from() in order to transform this from an ArrayBuffer - + // which socket.io uses to transfer the file over the websocket - into a `Buffer`. + if (encoding === null && result.contents !== null) { + result.contents = Buffer.from(result.contents) + } + + // Add the filename to the current command, in case we need it later (such as when storing an alias) + state('current').set('fileName', basename(result.filePath)) + + fileResult = result }) + .catch((err) => { + if (err.name === 'TimeoutError') { + $errUtils.throwErrByPath('files.timed_out', { + args: { cmd: 'readFile', file, timeout }, + retry: false, + }) + } - const consoleProps = {} + // Non-ENOENT errors are not retried + if (err.code !== 'ENOENT') { + $errUtils.throwErrByPath('files.unexpected_error', { + args: { cmd: 'readFile', action: 'read', file, filePath: err.filePath, error: err.message }, + errProps: { retry: false }, + }) + } - if (options.log) { - options._log = Cypress.log({ - message: file, - timeout: options.timeout, - consoleProps () { - return consoleProps - }, + // We have a ENOENT error - the file doesn't exist. Whether this is an error or not is deterimened + // by verifyUpcomingAssertions, when the command_queue receives the null file contents. + fileResult = { contents: null, filePath: err.filePath } + }) + .catch((err) => mostRecentError = err) + // Pass or fail, we always clear the filePromise, so future retries know there's no + // live request to the server. + .finally(() => filePromise = null) + } + + // When an assertion attached to this command fails, then we want to throw away the existing result + // and create a new promise to read a new one. + this.set('onFail', (err, timedOut) => { + if (err.type === 'existence') { + // file exists but it shouldn't - or - file doesn't exist but it should + const errPath = fileResult.contents ? 'files.existent' : 'files.nonexistent' + const { message, docsUrl } = $errUtils.cypressErrByPath(errPath, { + args: { cmd: 'readFile', file, filePath: fileResult.filePath }, }) - } - if (!file || !_.isString(file)) { - $errUtils.throwErrByPath('files.invalid_argument', { - onFail: options._log, - args: { cmd: 'readFile', file }, - }) + err.message = message + err.docsUrl = docsUrl } - // We clear the default timeout so we can handle - // the timeout ourselves - cy.clearTimeout() + createFilePromise() + }) - const verifyAssertions = () => { - return Cypress.backend('read:file', file, _.pick(options, 'encoding')).timeout(options.timeout) - .catch((err) => { - if (err.name === 'TimeoutError') { - return $errUtils.throwErrByPath('files.timed_out', { - onFail: options._log, - args: { cmd: 'readFile', file, timeout: options.timeout }, - }) - } - - // Non-ENOENT errors are not retried - if (err.code !== 'ENOENT') { - return $errUtils.throwErrByPath('files.unexpected_error', { - onFail: options._log, - args: { cmd: 'readFile', action: 'read', file, filePath: err.filePath, error: err.message }, - }) - } - - return { - contents: null, - filePath: err.filePath, - } - }).then(({ filePath, contents }) => { - // https://github.com/cypress-io/cypress/issues/1558 - // https://github.com/cypress-io/cypress/issues/20683 - // We invoke Buffer.from() in order to transform this from an ArrayBuffer - - // which socket.io uses to transfer the file over the websocket - into a `Buffer`. - if (options.encoding === null && contents !== null) { - contents = Buffer.from(contents) - } - - // Add the filename as a symbol, in case we need it later (such as when storing an alias) - state('current').set('fileName', basename(filePath)) - - consoleProps['File Path'] = filePath - consoleProps['Contents'] = contents - - return cy.verifyUpcomingAssertions(contents, options, { - ensureExistenceFor: 'subject', - onFail (err) { - if (err.type !== 'existence') { - return - } - - // file exists but it shouldn't - or - file doesn't exist but it should - const errPath = contents ? 'files.existent' : 'files.nonexistent' - const { message, docsUrl } = $errUtils.cypressErrByPath(errPath, { - args: { cmd: 'readFile', file, filePath }, - }) - - err.message = message - err.docsUrl = docsUrl - }, - onRetry: verifyAssertions, - }) - }) + return () => { + // Once we've read a file, that remains the result, unless it's cleared + // because of a failed assertion in `onFail` above. + if (fileResult) { + const props = { + 'Contents': fileResult?.contents, + 'File Path': fileResult?.filePath, + } + + log && state('current') === this && log.set('consoleProps', () => props) + + return fileResult.contents } - return verifyAssertions() - }, + createFilePromise() + // If we don't have a result, then the promise is pending. + // Throw an error and wait for the promise to eventually resolve on a future retry. + throw mostRecentError + } + }) + + Commands.addAll({ writeFile (fileName, contents, encoding, userOptions: Partial = {}) { if (_.isObject(encoding)) { userOptions = encoding diff --git a/packages/driver/src/cy/commands/querying/querying.ts b/packages/driver/src/cy/commands/querying/querying.ts index 53da09ff071b..69df1075d7e9 100644 --- a/packages/driver/src/cy/commands/querying/querying.ts +++ b/packages/driver/src/cy/commands/querying/querying.ts @@ -66,8 +66,7 @@ function getAlias (selector, log, cy) { */ if (command.get('name') === 'intercept') { - // Intercept aliases are fairly similar, but `getAliasedRequests` does *not* handle indexes - // and we have to do it ourselves here. + // `getAliasedRequests` does *not* handle indexes and we have to do it ourselves here. const requests = getAliasedRequests(aliasObj.alias, cy.state) diff --git a/packages/driver/src/cypress/error_messages.ts b/packages/driver/src/cypress/error_messages.ts index f89958dd2d8a..be8346aa1c42 100644 --- a/packages/driver/src/cypress/error_messages.ts +++ b/packages/driver/src/cypress/error_messages.ts @@ -520,6 +520,12 @@ export default { docsUrl: `https://on.cypress.io/${_.toLower(obj.cmd)}`, } }, + read_timed_out (obj) { + return { + message: `${cmd('readFile', '"{{file}}"')} timed out.`, + docsUrl: `https://on.cypress.io/readfile`, + } + }, timed_out (obj) { return { message: `${cmd('{{cmd}}', '"{{file}}"')} timed out after waiting \`{{timeout}}ms\`.`, diff --git a/packages/driver/src/cypress/log.ts b/packages/driver/src/cypress/log.ts index 588d38c03e17..0497809f9176 100644 --- a/packages/driver/src/cypress/log.ts +++ b/packages/driver/src/cypress/log.ts @@ -148,10 +148,8 @@ const defaults = function (state: StateFunc, config, obj) { return {} } - const ret = $dom.isElement(current.get('subject')) ? - $dom.getElements(current.get('subject')) - : - current.get('subject') + const subject = current.get('subject') + const ret = $dom.isElement(subject) ? $dom.getElements(subject) : subject return { Yielded: ret } }, From 9dbb808f19c3abea1beb2819d8c645a78c0103c5 Mon Sep 17 00:00:00 2001 From: Blue F Date: Tue, 21 Feb 2023 09:35:32 -0800 Subject: [PATCH 002/252] Merge develop --> release/13.0.0 (#25901) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: update newProject ref when switching between organizations in SelectCloudProjectModal (#25730) * chore: debug page tooltip distance and artifact border (#25727) * misc: debug page tooltip distance and artifact border * add changelog entry * fix CT test * fix: Improve error handling around calls to `this.next` in middleware (#25702) * chore: update changelog validation example (#25742) * misc: improve debug loading text wrap responsiveness (#25703) * misc: Increase max failures in IATR badge to 99 (#25737) * chore: exclude collaborator issues/PRs from triage project (#25769) * feat: add --auto-cancel-after-failures flag (#25237) Co-authored-by: Emily Rohrbough Co-authored-by: Matt Schile Co-authored-by: Ryan Pei Co-authored-by: Emily Rohrbough * chore: Update v8 snapshot cache (#25592) * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * Update update_v8_snapshot_cache.yml * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache * chore: updating v8 snapshot cache --------- Co-authored-by: cypress-bot[bot] <2f0651858c6e38e0+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Ryan Manuel Co-authored-by: cypress-bot[bot] <47117332+cypress-bot[bot]@users.noreply.github.com> * fix: implement new graphql fields for spec counts (#25757) Co-authored-by: Stokes Player Co-authored-by: Mike Plummer * feat: Bundle cy.origin() dependencies at runtime (#25626) Co-authored-by: cypress-bot[bot] <2f0651858c6e38e0+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Ryan Manuel * chore: remove zenhub from release process (#25701) Co-authored-by: Matt Schile * feat: add Cypress.Commands.overwriteQuery (#25674) * feat: add Cypress.Commands.overwriteQuery Co-authored-by: Emily Rohrbough Co-authored-by: Zach Bloomquist * fix: spawn child process with process.env in macOS arm64 (#25753) Co-authored-by: Matt Schile Co-authored-by: Emily Rohrbough Co-authored-by: Zach Bloomquist * chore: lint system tests in CI (#25673) * fix: Suppress filesystem errors during glob search (#25774) * chore: issue with ts-loader missing in binary and problematic esbuild norewrite construct (#25797) * chore: update changelog linting (#25809) * docs(guides): add more detail to code-signing (#25794) Co-authored-by: Emily Rohrbough * chore: update workflows.yml to include the v8 snapshot update branch (#25784) Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com> * chore: internal request preflight (#25772) --------- Co-authored-by: Emily Rohrbough Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: cypress-bot[bot] <2f0651858c6e38e0+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Ryan Manuel Co-authored-by: Matt Henkes Co-authored-by: Zach Bloomquist * chore: bump for 12.6.0 release (#25812) * chore: release @cypress/webpack-batteries-included-preprocessor-v2.4.0 [skip ci] * chore: release @cypress/webpack-preprocessor-v5.17.0 [skip ci] * test: skip flaky GitDataSource test (#25825) * chore: making our add-to-triage-board workflow reusable within the Cypress-io org (#25820) * chore: Making our add to triage workflow callable from other projects inside the Cypress-io org in Github * chore: updated cypress-example-kitchensink version (#25828) * fix: duplicate and expired cookies (#25761) * chore: add regression tests for duplicate cookies and bad expiry times * avoid prepending domain with dot for cookies that are set with the server side jar. This is to avoid the cookie being duplicated if it is set or overridden in a different context (request that can actually set the cookie or via document.domain) * feat: use cookie.toString() in the cookie patch to more accurately set cookies on the document, which should include other properties besides key=value * fix: add logic to handle expired cookies in the document.cookie patch, as well as in CDP * chore: build binary for cookie fixes for users to test * chore: change name of fixture to something more accurate * chore: comment why we are using the toughCookie toString method in the patch * [run ci] * chore: add changelog entry * [run ci] * fix: revert back to key=value when getting document.cookie as those are the only values are displayed (oversight on my end) * [run ci] * chore: make compatible with cypress.require * fix: add tests for hostOnly/non hostOnly cookies to make sure property gets sent up to automation client correctly. No longer need custom cookie prop to determine destination * [run ci] * fix: stale unit test * chore: adjust comments * [run ci] * fix: bad domain logic * [run ci] * chore: remove irrelevant comment * [run ci] * fix: adjust cookie login text to spec hostOnly cookie within the cookie patch. This should yield the same behavior as we are bound to same origin within the spec bridge * [run ci] * [run ci] * fix: allow for cookies on request of same key to take precedence over cookies in the jar, regardless of how many hierachy cookies exist in the jar * chore: fix cookie misc tests for cy.origin (dont run cy.origin) * [run ci] * chore: skip misc cookie tests in webkit as headless behavior doesn't clear cookies between tests correctly * Revert "fix: allow for cookies on request of same key to take precedence over cookies in the jar, regardless of how many hierachy cookies exist in the jar" This reverts commit 17de1883ab709669922de63793db8539fefa8067. * [run ci] * chore: split changelog entry into two parts * chore: update logic to remove else statement and add comments * [run ci] * chore: readd windows snapshot branch in workflows * [run ci] * chore: fix workflows from bad merge * [run ci] * Revert "chore: split changelog entry into two parts" This reverts commit 4352ef5f3ec4bed55ef54933c65966d351d830b7. * [run ci] * fix: Fix type definitions for cy.reload() (#25779) Co-authored-by: Emily Rohrbough * misc: Debug header updates (#25823) * fix: allow running tests outside Vite project root folder (#25801) * fix: allow running tests outside Vite project root folder * update snapshots * add changelog entry --------- Co-authored-by: Lachlan Miller * fix: mount component in [data-cy-root] (#25807) * fix(angular): mount component in [data-cy-root] * fix e2e test * add changelog entry * changelog [skip ci] * changelog --------- Co-authored-by: Lachlan Miller * chore: updating add to triage baord github action to use org secret (#25868) * chore: updating add to triage board github action to use org secret * chore: release @cypress/angular-v2.0.2 [skip ci] * chore: release @cypress/vite-dev-server-v5.0.3 [skip ci] * chore: Update v8 snapshot cache (#25822) Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Ryan Manuel * feat: support host only cookies (#25853) * feat: allow setCookie API to take a hostOnly option * chore: add jsdoc/typescript description to render to users * chore: add changelog entry * [run ci] * chore: fix types * chore: fix cookie login tests * chore: update e2e cookie system tests * [run ci] * chore: fix cookie command tests. localhost cookies are calculated as hostOnly, which is consistent with how cypress works today * chore: fix system tests for cookies. * [run ci] * chore: fix system tests * chore: skip hostOnly assertions in webkit (for now) * [run ci] * chore: add property definitions to setCookieOptions * [run ci] * chore: add comments to hostOnly prop in firefox when setting a cookie * fix(webpack-dev-server): touch component-index during onSpecsChange to avoid writing to app file (#25861) * testing: try disabling uTimesSync and see what happens * build binaries [run ci] * fix: touch component index file instead of browser.js * build binaries [run ci] * update test * fix test * add test for custom HTML file in config * use existing component index in webpack-dev-server unit tests --------- Co-authored-by: Lachlan Miller * chore: release @cypress/webpack-dev-server-v3.2.4 [skip ci] * chore: improve types for server automation cookie client (#25836) * chore: improve types for automation cookies * [run ci] * fix: the cookie_behavior tests by syncing cookies immediately if … (#25855) * fix: fix the cookie_behavior tests by syncing cookies immediately if the application is already stable * chore: add changelog entry * [run ci] * chore: address comments from code review * feat: Public API for CT Framework Definitions (#25780) * chore: rework component onboarding in launchpad (#25713) * chore: refactoring and types * rework source of frameworks * revert rename * fix tests * fix more tests * types * update code * use same public API internally * rename interfaces * rename * work on dev server api * fix types * fix test * attempt to support getDevServerConfig * tests * add function to define framework [skip ci] * rework a lot of types * fix test * update tests and types * refactor * revert changes * lint * fix test * revert * remove * add "community" label [skip ci] * refactor * types * lint * fix bug * update function name * address feedback * improve types with Pick * refactor using type guard * correct label --------- Co-authored-by: Zachary Williams * chore: typing error * feat: scan for 3rd party ct plugins (#25749) * chore: refactoring and types * rework source of frameworks * revert rename * fix tests * fix more tests * types * update code * use same public API internally * rename interfaces * rename * work on dev server api * fix types * fix test * attempt to support getDevServerConfig * tests * add function to define framework [skip ci] * rework a lot of types * fix test * update tests and types * refactor * revert changes * lint * fix test * revert * remove * add "community" label [skip ci] * refactor * types * lint * fix bug * update function name * address feedback * feat: scan for 3rd party ct plugins * add e2e test * unit tests [run ci] * tweak resolution * rebase, address comments * fix windows paths * remove .gitignore * fix test --------- Co-authored-by: Lachlan Miller * lint config * spacing * try fix race cond * fix import error * build binary * try update snapshot * try using require * support namespaced definitions (#25804) * remove category * add icon prop * support esm -> cjs compiled typescript * fix test * misc: add CTA footer to launchpad framework dropdown (#25831) * remove test project dependencies * rebase * windows * windows again * add changelog entry * changelog * revert workflow * remove worklfow --------- Co-authored-by: Zachary Williams Co-authored-by: Adam Stone-Lord * chore: release @cypress/webpack-dev-server-v3.3.0 [skip ci] * fix: Add missing error message when `req.continue` is used incorrectly (#25884) --------- Co-authored-by: Adam Stone-Lord Co-authored-by: Zachary Williams Co-authored-by: Mike Plummer Co-authored-by: Matt Schile Co-authored-by: Alejandro Estrada Co-authored-by: Emily Rohrbough Co-authored-by: Ryan Pei Co-authored-by: Emily Rohrbough Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: cypress-bot[bot] <2f0651858c6e38e0+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Ryan Manuel Co-authored-by: cypress-bot[bot] <47117332+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Mark Noonan Co-authored-by: Stokes Player Co-authored-by: Chris Breiding Co-authored-by: Zach Bloomquist Co-authored-by: willmsC <50909991+willmsC@users.noreply.github.com> Co-authored-by: Zach Bloomquist Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com> Co-authored-by: Tim Griesser Co-authored-by: Matt Henkes Co-authored-by: semantic-release-bot Co-authored-by: Ben M Co-authored-by: Bill Glesias Co-authored-by: Podles <78863563+podlesny-j@users.noreply.github.com> Co-authored-by: Paolo Caleffi Co-authored-by: Lachlan Miller --- .circleci/workflows.yml | 19 +- .github/PULL_REQUEST_TEMPLATE.md | 1 - .github/workflows/triage_add_to_project.yml | 29 +- .github/workflows/update-browser-versions.yml | 2 +- .../workflows/update_v8_snapshot_cache.yml | 11 +- CONTRIBUTING.md | 7 - cli/CHANGELOG.md | 44 +- cli/__snapshots__/cli_spec.js | 47 +- cli/index.mjs | 2 + cli/lib/cli.js | 2 + cli/lib/cypress.js | 18 + cli/lib/exec/run.js | 4 + cli/lib/util.js | 1 + cli/test/lib/cli_spec.js | 10 + cli/test/lib/cypress_spec.js | 19 +- cli/test/lib/exec/run_spec.js | 18 + cli/types/cypress-npm-api.d.ts | 19 + cli/types/cypress.d.ts | 257 ++- cli/types/tests/cypress-npm-api-test.ts | 28 +- cli/types/tests/cypress-tests.ts | 25 + guides/code-signing.md | 37 +- guides/release-process.md | 41 +- npm/angular/CHANGELOG.md | 7 + npm/angular/src/mount.ts | 20 + npm/vite-dev-server/CHANGELOG.md | 7 + .../client/initCypressTests.js | 8 +- .../CHANGELOG.md | 7 + .../index.js | 10 + npm/webpack-dev-server/CHANGELOG.md | 14 + .../cypress/e2e/webpack-dev-server.cy.ts | 18 + .../src/CypressCTWebpackPlugin.ts | 21 +- npm/webpack-dev-server/src/devServer.ts | 20 +- .../src/makeDefaultWebpackConfig.ts | 1 + .../test/devServer-e2e.spec.ts | 8 +- npm/webpack-preprocessor/CHANGELOG.md | 7 + npm/webpack-preprocessor/index.ts | 104 +- .../lib/cross-origin-callback-compile.ts | 104 -- .../lib/cross-origin-callback-loader.ts | 180 -- .../lib/cross-origin-callback-store.ts | 29 - .../lib/merge-source-map.ts | 95 -- npm/webpack-preprocessor/lib/utils.ts | 22 - npm/webpack-preprocessor/package.json | 13 +- .../unit/cross-origin-callback-loader.spec.ts | 301 ---- .../test/unit/index.spec.js | 88 - package.json | 2 +- packages/app/cypress/e2e/debug.cy.ts | 4 +- .../e2e/runner/ct-framework-errors.cy.ts | 30 +- .../e2e/runner/reporter-ct-mount-hover.cy.ts | 10 +- .../fixtures/debug-Failing/gql-Debug.json | 1 + .../fixtures/debug-Passing/gql-Debug.json | 3 +- .../app/src/debug/DebugArtifactLink.cy.tsx | 2 +- packages/app/src/debug/DebugArtifactLink.vue | 4 +- packages/app/src/debug/DebugContainer.cy.tsx | 47 + packages/app/src/debug/DebugContainer.vue | 10 +- packages/app/src/debug/DebugFailedTest.vue | 2 +- packages/app/src/debug/DebugPageHeader.cy.tsx | 21 +- packages/app/src/debug/DebugPageHeader.vue | 17 +- packages/app/src/debug/DebugSpec.vue | 5 +- .../src/debug/empty/DebugEmptyStates.cy.tsx | 4 + .../app/src/debug/empty/DebugEmptyView.vue | 22 +- .../src/navigation/SidebarNavigation.cy.tsx | 8 +- .../app/src/navigation/SidebarNavigation.vue | 4 +- .../src/navigation/SidebarNavigationRow.vue | 18 +- packages/config/src/options.ts | 3 +- .../src/actions/CodegenActions.ts | 5 +- .../data-context/src/actions/WizardActions.ts | 53 +- .../data-context/src/codegen/spec-options.ts | 3 +- .../src/data/ProjectConfigManager.ts | 18 +- .../data-context/src/data/coreDataShape.ts | 9 +- .../src/sources/FileDataSource.ts | 14 +- .../src/sources/RelevantRunSpecsDataSource.ts | 61 +- .../src/sources/WizardDataSource.ts | 5 +- .../test/unit/codegen/code-generator.spec.ts | 4 +- .../test/unit/codegen/spec-options.spec.ts | 16 +- .../test/unit/sources/FileDataSource.spec.ts | 29 + .../test/unit/sources/GitDataSource.spec.ts | 4 +- .../RelevantRunSpecsDataSource.spec.ts | 68 + .../unit/sources/WizardDataSource.spec.ts | 6 +- .../unit/sources/fixtures/graphqlFixtures.ts | 38 +- packages/data-context/tsconfig.json | 2 +- packages/driver/cross-origin-testing.md | 2 +- .../driver/cypress/e2e/commands/cookies.cy.js | 50 +- .../cypress/e2e/commands/net_stubbing.cy.ts | 24 + packages/driver/cypress/e2e/cypress/cy.cy.js | 49 + .../e2e/e2e/origin/cookie_behavior.cy.ts | 207 +-- .../cypress/e2e/e2e/origin/cookie_login.cy.ts | 6 +- .../cypress/e2e/e2e/origin/cookie_misc.cy.ts | 208 +++ .../e2e/e2e/origin/dependencies.cy.jsx | 2 +- .../cypress/e2e/e2e/origin/dependencies.cy.ts | 69 +- ...trigger-cross-origin-redirect-to-self.html | 21 + packages/driver/cypress/plugins/server.js | 11 + packages/driver/cypress/support/defaults.js | 2 +- packages/driver/src/cross-origin/cypress.ts | 15 + .../driver/src/cross-origin/events/cookies.ts | 26 +- packages/driver/src/cross-origin/origin_fn.ts | 77 +- packages/driver/src/cy/commands/cookies.ts | 6 +- .../driver/src/cy/commands/origin/index.ts | 2 + packages/driver/src/cypress.ts | 5 + packages/driver/src/cypress/commands.ts | 40 +- packages/driver/src/cypress/error_messages.ts | 32 +- packages/driver/src/cypress/stack_utils.ts | 14 +- packages/driver/types/internal-types.d.ts | 4 +- .../CLOUD_AUTO_CANCEL_MISMATCH.html | 48 + ...OUD_AUTO_CANCEL_NOT_AVAILABLE_IN_PLAN.html | 42 + .../RECORD_PARAMS_WITHOUT_RECORDING.html | 4 +- packages/errors/src/errorUtils.ts | 9 +- packages/errors/src/errors.ts | 40 +- packages/errors/test/unit/errors_spec.ts | 63 +- .../test/unit/visualSnapshotErrors_spec.ts | 16 + packages/example/README.md | 2 +- packages/example/package.json | 5 +- packages/extension/app/background.js | 2 + .../src/components/Select.cy.tsx | 5 +- .../frontend-shared/src/components/Select.vue | 1 + .../modals/SelectCloudProjectModal.cy.tsx | 14 + .../modals/SelectCloudProjectModal.vue | 6 +- .../frontend-shared/src/locales/en-US.json | 10 +- packages/graphql/schemas/cloud.graphql | 50 + packages/graphql/schemas/schema.graphql | 69 +- .../schemaTypes/enumTypes/gql-WizardEnums.ts | 9 +- .../inputTypes/gql-WizardUpdateInput.ts | 6 +- .../schemaTypes/objectTypes/gql-Mutation.ts | 6 +- .../src/schemaTypes/objectTypes/gql-Wizard.ts | 4 +- .../gql-WizardFrontendFramework.ts | 46 +- packages/graphql/test/stubCloudTypes.ts | 6 + .../__snapshots__/browsers_spec.ts.js | 192 +-- .../launcher/__snapshots__/darwin_spec.ts.js | 366 ++-- .../launcher/__snapshots__/windows_spec.ts.js | 478 +++--- packages/launcher/lib/utils.ts | 2 +- packages/launcher/test/unit/darwin_spec.ts | 16 +- .../launchpad/cypress/e2e/project-setup.cy.ts | 2 +- .../e2e/scaffold-component-testing.cy.ts | 64 + .../cypress/e2e/scaffold-project.cy.ts | 5 +- packages/launchpad/package.json | 1 + .../launchpad/src/setup/CommunityLabel.vue | 15 + .../src/setup/EnvironmentSetup.cy.tsx | 7 +- .../launchpad/src/setup/EnvironmentSetup.vue | 19 +- .../src/setup/FrameworkOptionsFooter.vue | 39 + .../launchpad/src/setup/ManualInstall.vue | 2 +- .../src/setup/SelectFwOrBundler.cy.tsx | 24 +- .../launchpad/src/setup/SelectFwOrBundler.vue | 57 +- packages/launchpad/src/setup/types.ts | 22 + packages/launchpad/src/utils/icons.ts | 4 +- packages/proxy/lib/http/index.ts | 21 +- packages/proxy/lib/http/util/cookies.ts | 4 +- packages/proxy/lib/http/util/inject.ts | 4 +- packages/proxy/lib/http/util/rewriter.ts | 4 +- packages/proxy/test/unit/http/index.spec.ts | 12 +- .../test/unit/http/request-middleware.spec.ts | 66 + .../unit/http/response-middleware.spec.ts | 89 +- packages/runner/injection/patches/cookies.ts | 45 +- packages/scaffold-config/package.json | 3 +- .../src/ct-detect-third-party.ts | 126 ++ packages/scaffold-config/src/dependencies.ts | 2 +- packages/scaffold-config/src/detect.ts | 16 +- packages/scaffold-config/src/frameworks.ts | 205 ++- packages/scaffold-config/src/index.ts | 1 + packages/scaffold-config/src/supportFile.ts | 3 +- .../unit/component-index-template.spec.ts | 6 +- .../test/unit/ct-detect-third-party.spec.ts | 90 + .../scaffold-config/test/unit/detect.spec.ts | 85 +- .../scaffold-config/test/unit/fixtures.ts | 28 + packages/server/__snapshots__/args_spec.js | 32 + packages/server/__snapshots__/cypress_spec.js | 43 +- packages/server/config/app.json | 2 +- packages/server/lib/automation/automation.ts | 8 +- packages/server/lib/automation/cookies.ts | 92 +- packages/server/lib/browsers/memory/index.ts | 6 +- packages/server/lib/cloud/api.ts | 217 ++- packages/server/lib/cloud/encryption.ts | 88 + packages/server/lib/cloud/routes.ts | 2 + .../lib/cross-origin/process-callback.ts | 67 + packages/server/lib/experiments.ts | 2 +- packages/server/lib/modes/record.js | 23 +- packages/server/lib/modes/run.ts | 14 +- .../server/lib/plugins/child/run_plugins.js | 21 - packages/server/lib/routes-e2e.ts | 27 +- packages/server/lib/server-base.ts | 15 +- packages/server/lib/server-e2e.ts | 2 +- packages/server/lib/socket-base.ts | 4 +- packages/server/lib/util/args.js | 8 +- packages/server/lib/util/cookies.ts | 36 +- packages/server/lib/util/print-run.ts | 10 +- packages/server/package.json | 6 +- .../server/test/integration/cypress_spec.js | 52 + .../test/unit/browsers/cdp_automation_spec.ts | 17 + packages/server/test/unit/cloud/api_spec.js | 76 + .../server/test/unit/cloud/encryption_spec.js | 66 + .../server/test/unit/modes/record_spec.js | 13 + packages/server/test/unit/util/args_spec.js | 52 + scripts/after-pack-hook.js | 19 +- scripts/binary/binary-cleanup.js | 7 + .../get-binary-release-data.js | 45 +- .../get-current-release-data.js | 7 +- scripts/semantic-commits/get-linked-issues.js | 2 +- .../validate-binary-changelog.js | 20 +- .../semantic-commits/validate-changelog.js | 54 +- .../validate-changelog-spec.js | 58 +- ...sues.js => validate-linked-issues-spec.js} | 15 +- system-tests/.eslintignore | 27 + system-tests/.eslintrc.json | 5 +- system-tests/__snapshots__/record_spec.js | 150 ++ .../vite_dev_server_fresh_spec.ts.js | 8 +- system-tests/lib/serverStub.ts | 57 +- system-tests/package.json | 5 +- .../angular/cypress/support/component.ts | 3 +- .../another-child-providers.component.ts | 10 +- .../app/components/button-output.component.ts | 6 +- .../components/child-providers.component.ts | 12 +- .../app/components/child-providers.service.ts | 8 +- .../src/app/components/child.component.ts | 6 +- .../src/app/components/counter.component.ts | 12 +- .../src/app/components/counter.service.ts | 8 +- .../angular/src/app/components/errors.ts | 8 +- .../src/app/components/lifecycle.component.ts | 12 +- .../src/app/components/logo.component.ts | 6 +- .../src/app/components/parent-child.module.ts | 2 +- .../components/parent-providers.component.ts | 6 +- .../src/app/components/parent.component.ts | 6 +- .../app/components/projection.component.ts | 4 +- .../components/with-directives.component.ts | 6 +- .../angular/src/app/errors.cy.ts | 3 +- .../angular/src/app/mount.cy.ts | 7 +- .../angular/src/app/zonejs-mocha-only.cy.ts | 17 +- .../angular/src/app/zonejs-mocha-skip.cy.ts | 16 +- .../next/cypress/Errors.cy.jsx | 16 +- .../next/cypress/support/component.ts | 2 +- ...cypress-vite-dev-server-function.config.ts | 14 +- .../react/cypress-vite-no-support.config.ts | 4 +- .../react/cypress-vite-port-in-use.config.ts | 10 +- .../react/cypress-vite.config.ts | 3 +- ...-webpack-dev-server-async-config.config.ts | 1 + ...-webpack-dev-server-custom-index.config.ts | 10 + ...ress-webpack-dev-server-function.config.ts | 16 +- .../cypress-webpack-no-support.config.ts | 4 +- .../react/cypress-webpack.config.ts | 4 +- .../react/my-component-index.html | 12 + .../project-fixtures/react/src/App.jsx | 1 - .../project-fixtures/react/src/Errors.cy.jsx | 14 +- .../react/src/MissingReact.jsx | 2 +- .../react/src/Rerendering.cy.jsx | 23 +- .../project-fixtures/react/src/Unmount.cy.jsx | 4 +- .../project-fixtures/react/src/mount.cy.jsx | 8 +- .../projects/coffee-react-interop/lib/dom.jsx | 4 +- .../projects/cra-ejected/config/env.js | 110 +- .../cra-ejected/config/getHttpsConfig.js | 62 +- .../projects/cra-ejected/config/modules.js | 85 +- .../projects/cra-ejected/config/paths.js | 38 +- .../cra-ejected/config/webpack.config.js | 253 +-- .../persistentCache/createEnvironmentHash.js | 15 +- .../config/webpackDevServer.config.js | 43 +- .../src/App.test.js | 13 +- .../create-react-app-configured/src/index.js | 12 +- .../src/setupTests.js | 2 +- .../src/App.cy.jsx | 2 +- .../src/App.test.js | 13 +- .../src/index.js | 12 +- .../src/setupTests.js | 2 +- .../create-react-app-unconfigured/src/App.js | 10 +- .../src/App.test.js | 13 +- .../src/index.js | 12 +- .../src/setupTests.js | 2 +- .../projects/ct-public-api-solid-js/README.MD | 1 + .../cypress-ct-solid-js/definition.d.ts | 6 + .../cypress-ct-solid-js/definition.js | 59 + .../cypress-ct-solid-js/index.d.ts | 10 + .../cypress-ct-solid-js/index.js | 3 + .../cypress-ct-solid-js/package.json | 22 + .../ct-public-api-solid-js/package-lock.json | 843 +++++++++ .../ct-public-api-solid-js/package.json | 7 + .../cypress/e2e/cookies_spec_baseurl.cy.js | 8 +- .../e2e/cypress/e2e/cy_origin_error.cy.ts | 2 +- ...igin_experimental_dependencies_error.cy.ts | 8 - .../projects/e2e/cypress/e2e/proxying.cy.js | 3 +- system-tests/projects/e2e/lib/dom.jsx | 4 +- system-tests/projects/e2e/static/fail.js | 2 +- .../e2e/static/simple_obstructive_code.js | 4 +- system-tests/projects/ids/cypress/e2e/dom.jsx | 2 +- .../test/failing/__snapshots__/spec.js | 25 +- .../test/invalid/__snapshots__/spec.js | 25 +- .../test/successful/__snapshots__/spec.js | 25 +- .../components/button.cy.jsx | 2 +- .../nextjs-configured/components/button.jsx | 2 +- .../projects/nextjs-configured/pages/_app.js | 2 +- .../nextjs-configured/pages/api/hello.js | 2 +- .../projects/nextjs-configured/pages/index.js | 2 +- .../components/button.cy.jsx | 2 +- .../nextjs-unconfigured/components/button.jsx | 2 +- .../nextjs-unconfigured/pages/_app.js | 2 +- .../nextjs-unconfigured/pages/api/hello.js | 2 +- .../nextjs-unconfigured/pages/index.js | 2 +- .../no-specs-custom-pattern/src/App.jsx | 8 +- .../src/components/Button.cy2.jsx | 5 +- .../src/components/Button.jsx | 21 +- .../no-specs-custom-pattern/src/index.jsx | 12 +- .../projects/no-specs-vue-2/babel.config.js | 4 +- .../cypress-custom-spec-pattern.config.js | 6 +- .../cypress/support/commands.js | 2 +- .../cypress/support/component.js | 2 +- .../projects/no-specs-vue-2/src/main.js | 2 +- .../projects/no-specs-vue-2/vue.config.js | 3 +- system-tests/projects/no-specs/src/App.jsx | 8 +- system-tests/projects/no-specs/src/index.jsx | 12 +- .../components/Errors.cy.js | 7 +- .../nuxtjs-vue2-configured/nuxt.config.js | 8 +- .../nuxtjs-vue2-unconfigured/nuxt.config.js | 10 +- .../cypress/e2e/cross_origin.cy.js | 3 - .../passthru-preprocessor/cypress.config.js | 7 - .../cypress/e2e/cross_origin.cy.js | 8 - .../cypress/support/e2e.js | 0 .../passthru-preprocessor/primary_origin.html | 17 - .../secondary_origin.html | 1 - .../support/commands.js | 2 +- .../support/component.js | 2 +- .../cypress/support/commands.js | 2 +- .../cypress/support/e2e.js | 2 +- .../cypress/support/commands.js | 2 +- .../cypress/support/commands.js | 2 +- .../cypress/support/e2e.js | 2 +- .../cypress/support/commands.js | 2 +- .../cypress/support/e2e.js | 2 +- .../cypress.config.ts | 6 +- .../cypress/support/commands.ts | 2 +- .../cypress/support/component.ts | 2 +- .../cypress.config.ts | 8 +- .../cypress/support/commands.ts | 2 +- .../cypress/support/component.ts | 2 +- .../expected-cypress-ts-e2e/cypress.config.ts | 6 +- .../cypress/support/commands.ts | 2 +- .../cypress/support/e2e.ts | 2 +- .../@org/cypress-ct-qwik/definition.cjs | 28 + .../qwik-app/@org/cypress-ct-qwik/index.mjs | 3 + .../@org/cypress-ct-qwik/package.json | 9 + .../qwik-app/cypress-ct-qwik/definition.cjs | 28 + .../qwik-app/cypress-ct-qwik/index.mjs | 3 + .../qwik-app/cypress-ct-qwik/package.json | 9 + .../misconfigured-cypress-ct-qwik/index.js | 4 + .../package.json | 5 + system-tests/projects/qwik-app/package.json | 14 + system-tests/projects/qwik-app/yarn.lock | 232 +++ .../config/env.js | 110 +- .../config/getHttpsConfig.js | 62 +- .../config/jest/babelTransform.js | 17 +- .../config/jest/cssTransform.js | 12 +- .../config/jest/fileTransform.js | 21 +- .../config/modules.js | 85 +- .../config/paths.js | 38 +- .../persistentCache/createEnvironmentHash.js | 15 +- .../config/webpackDevServer.config.js | 43 +- .../scripts/build.js | 285 ++-- .../scripts/start.js | 242 +-- .../scripts/test.js | 48 +- .../src/App.js | 10 +- .../src/App.test.js | 13 +- .../src/index.js | 16 +- .../src/reportWebVitals.js | 18 +- .../src/setupTests.js | 2 +- .../webpack.config.js | 253 +-- .../react17/src/UsingLegacyMount.cy.jsx | 4 +- .../react18/src/UsingLegacyMount.cy.jsx | 4 +- .../projects/runner-ct-specs/src/Errors.jsx | 1 - .../src/components/HelloWorld.cy.ts | 4 +- .../vue3-vite-ts-configured/vite.config.ts | 4 +- .../vite.config.ts | 4 +- .../vue3-vite-ts-unconfigured/vite.config.ts | 2 +- .../cypress/support/component.js | 2 +- .../src/components/HelloWorld.cy.js | 8 +- .../vueclivue2-configured/src/mount.cy.js | 12 +- .../vueclivue2-unconfigured/src/main.js | 4 +- system-tests/test/cy_origin_error_spec.ts | 39 - system-tests/test/record_spec.js | 205 ++- .../test/typescript_spec_support_spec.ts | 1 - .../cache/darwin/snapshot-meta.json | 1515 ++++++++++++++++- .../cache/linux/snapshot-meta.json | 1207 ++++++++++++- .../cache/win32/snapshot-meta.json | 1209 ++++++++++++- tooling/v8-snapshot/package.json | 2 +- yarn.lock | 77 +- 377 files changed, 11439 insertions(+), 3991 deletions(-) delete mode 100644 npm/webpack-preprocessor/lib/cross-origin-callback-compile.ts delete mode 100644 npm/webpack-preprocessor/lib/cross-origin-callback-loader.ts delete mode 100644 npm/webpack-preprocessor/lib/cross-origin-callback-store.ts delete mode 100644 npm/webpack-preprocessor/lib/merge-source-map.ts delete mode 100644 npm/webpack-preprocessor/test/unit/cross-origin-callback-loader.spec.ts create mode 100644 packages/data-context/test/unit/sources/RelevantRunSpecsDataSource.spec.ts create mode 100644 packages/driver/cypress/e2e/e2e/origin/cookie_misc.cy.ts create mode 100644 packages/driver/cypress/fixtures/trigger-cross-origin-redirect-to-self.html create mode 100644 packages/errors/__snapshot-html__/CLOUD_AUTO_CANCEL_MISMATCH.html create mode 100644 packages/errors/__snapshot-html__/CLOUD_AUTO_CANCEL_NOT_AVAILABLE_IN_PLAN.html create mode 100644 packages/launchpad/src/setup/CommunityLabel.vue create mode 100644 packages/launchpad/src/setup/FrameworkOptionsFooter.vue create mode 100644 packages/launchpad/src/setup/types.ts create mode 100644 packages/scaffold-config/src/ct-detect-third-party.ts create mode 100644 packages/scaffold-config/test/unit/ct-detect-third-party.spec.ts create mode 100644 packages/scaffold-config/test/unit/fixtures.ts create mode 100644 packages/server/lib/cloud/encryption.ts create mode 100644 packages/server/lib/cross-origin/process-callback.ts create mode 100644 packages/server/test/unit/cloud/encryption_spec.js rename scripts/unit/semantic-commits/{validate-linked-issues.js => validate-linked-issues-spec.js} (79%) create mode 100644 system-tests/.eslintignore create mode 100644 system-tests/project-fixtures/react/cypress-webpack-dev-server-custom-index.config.ts create mode 100644 system-tests/project-fixtures/react/my-component-index.html create mode 100644 system-tests/projects/ct-public-api-solid-js/README.MD create mode 100644 system-tests/projects/ct-public-api-solid-js/cypress-ct-solid-js/definition.d.ts create mode 100644 system-tests/projects/ct-public-api-solid-js/cypress-ct-solid-js/definition.js create mode 100644 system-tests/projects/ct-public-api-solid-js/cypress-ct-solid-js/index.d.ts create mode 100644 system-tests/projects/ct-public-api-solid-js/cypress-ct-solid-js/index.js create mode 100644 system-tests/projects/ct-public-api-solid-js/cypress-ct-solid-js/package.json create mode 100644 system-tests/projects/ct-public-api-solid-js/package-lock.json create mode 100644 system-tests/projects/ct-public-api-solid-js/package.json delete mode 100644 system-tests/projects/e2e/cypress/e2e/cy_origin_experimental_dependencies_error.cy.ts delete mode 100644 system-tests/projects/origin-dependencies/cypress/e2e/cross_origin.cy.js delete mode 100644 system-tests/projects/passthru-preprocessor/cypress.config.js delete mode 100644 system-tests/projects/passthru-preprocessor/cypress/e2e/cross_origin.cy.js delete mode 100644 system-tests/projects/passthru-preprocessor/cypress/support/e2e.js delete mode 100644 system-tests/projects/passthru-preprocessor/primary_origin.html delete mode 100644 system-tests/projects/passthru-preprocessor/secondary_origin.html create mode 100644 system-tests/projects/qwik-app/@org/cypress-ct-qwik/definition.cjs create mode 100644 system-tests/projects/qwik-app/@org/cypress-ct-qwik/index.mjs create mode 100644 system-tests/projects/qwik-app/@org/cypress-ct-qwik/package.json create mode 100644 system-tests/projects/qwik-app/cypress-ct-qwik/definition.cjs create mode 100644 system-tests/projects/qwik-app/cypress-ct-qwik/index.mjs create mode 100644 system-tests/projects/qwik-app/cypress-ct-qwik/package.json create mode 100644 system-tests/projects/qwik-app/misconfigured-cypress-ct-qwik/index.js create mode 100644 system-tests/projects/qwik-app/misconfigured-cypress-ct-qwik/package.json create mode 100644 system-tests/projects/qwik-app/package.json create mode 100644 system-tests/projects/qwik-app/yarn.lock diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index 15701f41fac8..686e662911a3 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -28,7 +28,8 @@ mainBuildFilters: &mainBuildFilters only: - develop - /^release\/\d+\.\d+\.\d+$/ - - 'emily/next-version' + # use the following branch as well to ensure that v8 snapshot cache updates are fully tested + - 'update-v8-snapshot-cache-on-develop' # 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 +38,8 @@ macWorkflowFilters: &darwin-workflow-filters when: or: - equal: [ develop, << pipeline.git.branch >> ] - - equal: [ 'mschile/chrome_memory_fix', << pipeline.git.branch >> ] + # use the following branch as well to ensure that v8 snapshot cache updates are fully tested + - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -46,7 +48,8 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters when: or: - equal: [ develop, << pipeline.git.branch >> ] - - equal: [ 'mschile/chrome_memory_fix', << pipeline.git.branch >> ] + # use the following branch as well to ensure that v8 snapshot cache updates are fully tested + - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -64,7 +67,8 @@ windowsWorkflowFilters: &windows-workflow-filters when: or: - equal: [ develop, << pipeline.git.branch >> ] - - equal: [ 'mschile/chrome_memory_fix', << pipeline.git.branch >> ] + # use the following branch as well to ensure that v8 snapshot cache updates are fully tested + - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -130,7 +134,7 @@ commands: - run: name: Check current branch to persist artifacts command: | - if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "emily/next-version" ]]; then + if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* ]]; then echo "Not uploading artifacts or posting install comment for this branch." circleci-agent step halt fi @@ -201,7 +205,8 @@ commands: name: Generate v8 snapshot command: | source ./scripts/ensure-node.sh - yarn build-v8-snapshot-prod + # Minification takes some time. We only really need to do that for the binary (and we regenerate snapshots separately there) + V8_SNAPSHOT_DISABLE_MINIFY=1 yarn build-v8-snapshot-prod - prepare-modules-cache # So we don't throw these in the workspace cache - persist_to_workspace: root: ~/ @@ -1443,6 +1448,8 @@ jobs: - update_known_hosts - run: yarn test-npm-package-release-script - run: node ./scripts/semantic-commits/validate-binary-changelog.js + - store_artifacts: + path: /tmp/releaseData lint-types: <<: *defaults diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 99a767e520c4..ff1b1ac51f32 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -32,6 +32,5 @@ DO NOT DELETE the PR checklist. --> - [ ] Have tests been added/updated? -- [ ] Has the original issue (or this PR, if no issue exists) been tagged with a release in ZenHub? (user-facing changes only) - [ ] Has a PR for user-facing changes been opened in [`cypress-documentation`](https://github.com/cypress-io/cypress-documentation)? - [ ] Have API changes been updated in the [`type definitions`](https://github.com/cypress-io/cypress/blob/develop/cli/types/cypress.d.ts)? diff --git a/.github/workflows/triage_add_to_project.yml b/.github/workflows/triage_add_to_project.yml index 4dcf519a2a17..0b1b5f16f0f0 100644 --- a/.github/workflows/triage_add_to_project.yml +++ b/.github/workflows/triage_add_to_project.yml @@ -1,6 +1,11 @@ name: 'Triage: add issue/PR to project' on: + # makes this workflow reusable + workflow_call: + secrets: + ADD_TO_TRIAGE_BOARD_TOKEN: + required: true issues: types: - opened @@ -12,9 +17,25 @@ jobs: add-to-triage-project: name: Add to triage project runs-on: ubuntu-latest + env: + PROJECT_NUMBER: 9 + GITHUB_TOKEN: ${{ secrets.ADD_TO_TRIAGE_BOARD_TOKEN }} steps: - - uses: actions/add-to-project@v0.3.0 + - name: is-collaborator + run: | + gh api graphql -f query=' + query($org: String!, $repo: String!, $user: String!) { + repository(owner: $org, name: $repo) { + collaborators(query: $user, first: 1) { + totalCount + } + } + } ' -f org=${{ github.repository_owner }} -f repo=${{ github.event.repository.name }} -f user=${{ github.actor }} > collaborators.json + + echo 'IS_COLLABORATOR='$(jq -r '.data.repository.collaborators.totalCount' collaborators.json) >> $GITHUB_ENV + - uses: actions/add-to-project@v0.4.0 + # only add issues/prs from outside contributors to the project + if: ${{ env.IS_COLLABORATOR == 0 }} with: - project-url: https://github.com/orgs/cypress-io/projects/9 - github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }} - + project-url: https://github.com/orgs/${{github.repository_owner}}/projects/${{env.PROJECT_NUMBER}} + github-token: ${{ secrets.ADD_TO_TRIAGE_BOARD_TOKEN }} diff --git a/.github/workflows/update-browser-versions.yml b/.github/workflows/update-browser-versions.yml index 974281fc06e2..60ecdbe71099 100644 --- a/.github/workflows/update-browser-versions.yml +++ b/.github/workflows/update-browser-versions.yml @@ -13,7 +13,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.BOT_GITHUB_ACTION_TOKEN }} - name: Set committer info ## attribute the commit to cypress-bot: https://github.community/t/logging-into-git-as-a-github-app/115916 run: | diff --git a/.github/workflows/update_v8_snapshot_cache.yml b/.github/workflows/update_v8_snapshot_cache.yml index 11150a178c1c..345b718fb22c 100644 --- a/.github/workflows/update_v8_snapshot_cache.yml +++ b/.github/workflows/update_v8_snapshot_cache.yml @@ -1,12 +1,12 @@ name: Update V8 Snapshot Cache on: schedule: + # Run everyday except Wednesday at 00:00 UTC + - cron: '0 0 * * 0,1,2,4,5,6' # Run every Wednesday at 00:00 UTC - cron: '0 0 * * 3' push: branches: - - ryanm/feature/v8-snapshots-auto-pr - - develop - 'release/**' workflow_dispatch: inputs: @@ -33,9 +33,10 @@ jobs: platform: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.platform }} env: - CYPRESS_BOT_APP_ID: ${{ secrets.CYPRESS_BOT_APP_ID }} + CYPRESS_BOT_APP_ID: ${{ secrets.RAM_APP }} BASE_BRANCH: ${{ inputs.branch || github.ref_name }} - GENERATE_FROM_SCRATCH: ${{ inputs.generate_from_scratch == true || github.event_name == 'schedule' }} + # Flex the generate from scratch option based on manual input or if we are on the weekly schedule + GENERATE_FROM_SCRATCH: ${{ inputs.generate_from_scratch == true || (github.event_name == 'schedule' && github.event.schedule == '0 0 * * 3') }} steps: - name: Determine snapshot files - Windows if: ${{ matrix.platform == 'windows-latest' }} @@ -51,7 +52,7 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.BOT_GITHUB_ACTION_TOKEN }} ref: ${{ env.BASE_BRANCH }} - name: Set committer info ## attribute the commit to cypress-bot: https://github.community/t/logging-into-git-as-a-github-app/115916 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2be57763c274..9bdad1a4a574 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -476,8 +476,6 @@ We do not continuously deploy the Cypress binary, so `develop` contains all of t - `test` - Adding missing or correcting existing tests - For user-facing changes that will be released with the next Cypress version, be sure to add a changelog entry to the appropriate section in [`cli/CHANGELOG.md`](./cli/CHANGELOG.md). See [Writing the Cypress Changelog Guide](./guides/writing-the-cypress-changelog.md) for more details. - Fill out the [Pull Request Template](./.github/PULL_REQUEST_TEMPLATE.md) completely within the body of the PR. If you feel some areas are not relevant add `N/A` as opposed to deleting those sections. PRs will not be reviewed if this template is not filled in. -- If the PR is a user facing change and you're a Cypress team member that has logged into [ZenHub](https://www.zenhub.com/) and downloaded the [ZenHub for GitHub extension](https://www.zenhub.com/extension), set the release the PR is intended to ship in from the sidebar of the PR. Follow semantic versioning to select the intended release. This is used to generate the changelog for the release. If you don't tag a PR for release, it won't be mentioned in the changelog. - ![Select release for PR](https://user-images.githubusercontent.com/1271364/135139641-657015d6-2dca-42d4-a4fb-16478f61d63f.png) - Please check the "Allow edits from maintainers" checkbox when submitting your PR. This will make it easier for the maintainers to make minor adjustments, to help with tests or any other changes we may need. ![Allow edits from maintainers checkbox](https://user-images.githubusercontent.com/1271181/31393427-b3105d44-ada9-11e7-80f2-0dac51e3919e.png) - All Pull Requests require a minimum of **two** approvals. @@ -561,10 +559,6 @@ Below are guidelines to help during code review. If any of the following require - [ ] There is no irrelevant code to the issue being addressed. If there is, ask the contributor to break the work out into a separate PR. - [ ] Tests are testing the code's intended functionality in the best way possible. -#### Internal - -- [ ] The original issue has been tagged with a release in ZenHub. - ### Code Review of Dependency Updates Below are some guidelines Cypress uses when reviewing dependency updates. @@ -579,7 +573,6 @@ Below are some guidelines Cypress uses when reviewing dependency updates. - [ ] Code using the dependency has been updated to accommodate any breaking changes - [ ] The dependency still supports the version of Node that the package requires. -- [ ] The PR been tagged with a release in ZenHub. - [ ] Appropriate labels have been added to the PR (for example: label `type: breaking change` if it is a breaking change) ## Releases diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index c5036166c8b0..2105ad9bd9d6 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,33 +1,61 @@ ## 13.0.0 -_Released 01/31/2023 (PENDING)_ +_Released 03/1/2023 (PENDING)_ **Breaking Changes:** - The [`cy.readFile()`](/api/commands/readfile) command is now retry-able as a [query command](https://on.cypress.io/retry-ability). This should not affect any tests using it; the functionality is unchanged. However, it can no longer be overwritten using [`Cypress.Commands.overwrite()`](/api/cypress-api/custom-commands#Overwrite-Existing-Commands). Addressed in [#25595](https://github.com/cypress-io/cypress/pull/25595). +**Features:** + +- It is now possible to set `hostOnly` cookies with [`cy.setCookie()`](https://docs.cypress.io/api/commands/setcookie) for a given domain. Addresses [#16856](https://github.com/cypress-io/cypress/issues/16856) and [#17527](https://github.com/cypress-io/cypress/issues/17527). +- Added a Public API for third party component libraries to define a Framework Definition, embedding their library into the Cypress onboarding workflow. Learn more [here](https://docs.cypress.io/guides/component-testing/third-party-definitions). Implemented in [#25780](https://github.com/cypress-io/cypress/pull/25780) and closes [#25638](https://github.com/cypress-io/cypress/issues/25638). + +**Bugfixes:** + +- Fixed an issue where cookies were being duplicated with the same hostname, but a prepended dot. Fixed an issue where cookies may not be expiring correctly. Fixes [#25174](https://github.com/cypress-io/cypress/issues/25174), [#25205](https://github.com/cypress-io/cypress/issues/25205) and [#25495](https://github.com/cypress-io/cypress/issues/25495). +- Fixed an issue where cookies weren't being synced when the application was stable. Fixed in [#25855](https://github.com/cypress-io/cypress/pull/25855). Fixes [#25835](https://github.com/cypress-io/cypress/issues/25835). +- Added missing TypeScript type definitions for the [`cy.reload()`](https://docs.cypress.io/api/commands/reload) command. Addressed in [#25779](https://github.com/cypress-io/cypress/pull/25779). +- Ensure Angular components are mounted inside the correct element. Fixes [#24385](https://github.com/cypress-io/cypress/issues/24385) +- Fix a bug where files outside the project root in a monorepo are not correctly served when using Vite. Addressed in [#25801](https://github.com/cypress-io/cypress/pull/25801) +- Fixed an issue where using [`cy.intercept`](https://docs.cypress.io/api/commands/intercept)'s `req.continue()` with a non-function parameter would not provide an appropriate error message. Fixed in [#25884](https://github.com/cypress-io/cypress/pull/25884). + +**Misc:** + + - Made updates to the way that the Debug Page header displays information. Addresses [#25796](https://github.com/cypress-io/cypress/issues/25796) and [#25798](https://github.com/cypress-io/cypress/issues/25798). + ## 12.6.0 -_Released 02/14/2023 (PENDING)_ +_Released 02/15/2023_ **Features:** -- Added the "Open in IDE" feature for failed tests reported from the Debug page. Addressed in [#25691](https://github.com/cypress-io/cypress/pull/25691). +- Added a new CLI flag, called [`--auto-cancel-after-failures`](https://docs.cypress.io/guides/guides/command-line#Options), that overrides the project-level ["Auto Cancellation"](https://docs.cypress.io/guides/cloud/smart-orchestration#Auto-Cancellation) value when recording to the Cloud. This gives Cloud users on Business and Enterprise plans the flexibility to alter the auto-cancellation value per run. Addressed in [#25237](https://github.com/cypress-io/cypress/pull/25237). +- It is now possible to overwrite query commands using [`Cypress.Commands.overwriteQuery`](https://on.cypress.io/api/custom-queries). Addressed in [#25078](https://github.com/cypress-io/cypress/issues/25078). +- Added [`Cypress.require()`](https://docs.cypress.io/api/cypress-api/require) for including dependencies within the [`cy.origin()`](https://docs.cypress.io/api/commands/origin) callback. This change removed support for using `require()` and `import()` directly within the callback because we found that it impacted performance not only for spec files using them within the [`cy.origin()`](https://docs.cypress.io/api/commands/origin) callback, but even for spec files that did not use them. Addresses [#24976](https://github.com/cypress-io/cypress/issues/24976). +- Added the ability to open the failing test in the IDE from the Debug page before needing to re-run the test. Addressed in [#24850](https://github.com/cypress-io/cypress/issues/24850). + +**Bugfixes:** + +- When a Cloud user is apart of multiple Cloud organizations, the [Connect to Cloud setup](https://docs.cypress.io/guides/cloud/projects#Set-up-a-project-to-record) now shows the correct organizational prompts when connecting a new project. Fixes [#25520](https://github.com/cypress-io/cypress/issues/25520). +- Fixed an issue where Cypress would fail to load any specs if the project `specPattern` included a resource that could not be accessed due to filesystem permissions. Fixes [#24109](https://github.com/cypress-io/cypress/issues/24109). +- Fixed an issue where the Debug page would display a different number of specs for in-progress runs than the in-progress specs reported in Cypress Cloud. Fixes [#25647](https://github.com/cypress-io/cypress/issues/25647). +- Fixed an issue in middleware where error-handling code could itself generate an error and fail to report the original issue. Fixes [#22825](https://github.com/cypress-io/cypress/issues/22825). +- Fixed an regression introduced in Cypress [12.3.0](#12-3-0) where custom browsers that relied on process environment variables were not found on macOS arm64 architectures. Fixed in [#25753](https://github.com/cypress-io/cypress/pull/25753). **Misc:** -- Improved the layout of the Debug Page on smaller viewports when there is a pending run. Addresses [#25664](https://github.com/cypress-io/cypress/issues/25664). -- Improved the layout of the Debug Page when displaying informational messages. Addresses [#25669](https://github.com/cypress-io/cypress/issues/25669). -- Icons in Debug page will no longer shrink at small viewports. Addresses [#25665](https://github.com/cypress-io/cypress/issues/25665). +- Improved the UI of the Debug page. Addresses [#25664](https://github.com/cypress-io/cypress/issues/25664), [#25669](https://github.com/cypress-io/cypress/issues/25669), [#25665](https://github.com/cypress-io/cypress/issues/25665), [#25666](https://github.com/cypress-io/cypress/issues/25666), and [#25667](https://github.com/cypress-io/cypress/issues/25667). +- Updated the Debug page sidebar badge to to show 0 to 99+ failing tests, increased from showing 0 to 9+ failing tests, to provide better test failure insights. Addresses [#25662](https://github.com/cypress-io/cypress/issues/25662). **Dependency Updates:** -- Upgrade [`debug`][(https://www.npmjs.com/package/debug) to `4.3.4`. Addressed in [#25699](https://github.com/cypress-io/cypress/pull/25699). +- Upgrade [`debug`](https://www.npmjs.com/package/debug) to `4.3.4`. Addressed in [#25699](https://github.com/cypress-io/cypress/pull/25699). ## 12.5.1 -_Released 02/10/2023_ +_Released 02/02/2023_ **Bugfixes:** diff --git a/cli/__snapshots__/cli_spec.js b/cli/__snapshots__/cli_spec.js index 69137521fbac..562cbeb7fdf7 100644 --- a/cli/__snapshots__/cli_spec.js +++ b/cli/__snapshots__/cli_spec.js @@ -67,29 +67,30 @@ exports['shows help for run --foo 1'] = ` Runs Cypress tests from the CLI without the GUI Options: - -b, --browser runs Cypress in the browser with the given name. if a filesystem path is supplied, Cypress will attempt to use the browser at that path. - --ci-build-id the unique identifier for a run on your CI provider. typically a "BUILD_ID" env var. this value is automatically detected for most CI providers - --component runs component tests - -c, --config sets configuration values. separate multiple values with a comma. overrides any value in cypress.config.{js,ts,mjs,cjs}. - -C, --config-file path to script file where configuration values are set. defaults to "cypress.config.{js,ts,mjs,cjs}". - --e2e runs end to end tests - -e, --env sets environment variables. separate multiple values with a comma. overrides any value in cypress.config.{js,ts,mjs,cjs} or cypress.env.json - --group a named group for recorded runs in Cypress Cloud - -k, --key your secret Record Key. you can omit this if you set a CYPRESS_RECORD_KEY environment variable. - --headed displays the browser instead of running headlessly - --headless hide the browser instead of running headed (default for cypress run) - --no-exit keep the browser open after tests finish - --parallel enables concurrent runs and automatic load balancing of specs across multiple machines or processes - -p, --port runs Cypress on a specific port. overrides any value in cypress.config.{js,ts,mjs,cjs}. - -P, --project path to the project - -q, --quiet run quietly, using only the configured reporter - --record [bool] records the run. sends test results, screenshots and videos to Cypress Cloud. - -r, --reporter runs a specific mocha reporter. pass a path to use a custom reporter. defaults to "spec" - -o, --reporter-options options for the mocha reporter. defaults to "null" - -s, --spec runs specific spec file(s). defaults to "all" - -t, --tag named tag(s) for recorded runs in Cypress Cloud - --dev runs cypress in development and bypasses binary check - -h, --help display help for command + --auto-cancel-after-failures overrides the project-level Cloud configuration to set the failed test threshold for auto cancellation or to disable auto cancellation when recording to the Cloud + -b, --browser runs Cypress in the browser with the given name. if a filesystem path is supplied, Cypress will attempt to use the browser at that path. + --ci-build-id the unique identifier for a run on your CI provider. typically a "BUILD_ID" env var. this value is automatically detected for most CI providers + --component runs component tests + -c, --config sets configuration values. separate multiple values with a comma. overrides any value in cypress.config.{js,ts,mjs,cjs}. + -C, --config-file path to script file where configuration values are set. defaults to "cypress.config.{js,ts,mjs,cjs}". + --e2e runs end to end tests + -e, --env sets environment variables. separate multiple values with a comma. overrides any value in cypress.config.{js,ts,mjs,cjs} or cypress.env.json + --group a named group for recorded runs in Cypress Cloud + -k, --key your secret Record Key. you can omit this if you set a CYPRESS_RECORD_KEY environment variable. + --headed displays the browser instead of running headlessly + --headless hide the browser instead of running headed (default for cypress run) + --no-exit keep the browser open after tests finish + --parallel enables concurrent runs and automatic load balancing of specs across multiple machines or processes + -p, --port runs Cypress on a specific port. overrides any value in cypress.config.{js,ts,mjs,cjs}. + -P, --project path to the project + -q, --quiet run quietly, using only the configured reporter + --record [bool] records the run. sends test results, screenshots and videos to Cypress Cloud. + -r, --reporter runs a specific mocha reporter. pass a path to use a custom reporter. defaults to "spec" + -o, --reporter-options options for the mocha reporter. defaults to "null" + -s, --spec runs specific spec file(s). defaults to "all" + -t, --tag named tag(s) for recorded runs in Cypress Cloud + --dev runs cypress in development and bypasses binary check + -h, --help display help for command ------- stderr: ------- diff --git a/cli/index.mjs b/cli/index.mjs index 7b616f65a344..dcf09178f398 100644 --- a/cli/index.mjs +++ b/cli/index.mjs @@ -8,6 +8,8 @@ export default cypress export const defineConfig = cypress.defineConfig +export const defineComponentFramework = cypress.defineComponentFramework + export const run = cypress.run export const open = cypress.open diff --git a/cli/lib/cli.js b/cli/lib/cli.js index ce34a1b696f3..04599c93fc0f 100644 --- a/cli/lib/cli.js +++ b/cli/lib/cli.js @@ -93,6 +93,7 @@ const parseVariableOpts = (fnArgs, args) => { } const descriptions = { + autoCancelAfterFailures: 'overrides the project-level Cloud configuration to set the failed test threshold for auto cancellation or to disable auto cancellation when recording to the Cloud', browser: 'runs Cypress in the browser with the given name. if a filesystem path is supplied, Cypress will attempt to use the browser at that path.', cacheClear: 'delete all cached binaries', cachePrune: 'deletes all cached binaries except for the version currently in use', @@ -242,6 +243,7 @@ const addCypressRunCommand = (program) => { .command('run') .usage('[options]') .description('Runs Cypress tests from the CLI without the GUI') + .option('--auto-cancel-after-failures ', text('autoCancelAfterFailures')) .option('-b, --browser ', text('browser')) .option('--ci-build-id ', text('ciBuildId')) .option('--component', text('component')) diff --git a/cli/lib/cypress.js b/cli/lib/cypress.js index 02348266aa54..ff140859ff22 100644 --- a/cli/lib/cypress.js +++ b/cli/lib/cypress.js @@ -87,6 +87,24 @@ const cypressModuleApi = { defineConfig (config) { return config }, + + /** + * Provides automatic code completion for Component Frameworks Definitions. + * While it's not strictly necessary for Cypress to parse your configuration, we + * recommend wrapping your Component Framework Definition object with `defineComponentFramework()` + * @example + * module.exports = defineComponentFramework({ + * type: 'cypress-ct-solid-js' + * // ... + * }) + * + * @see ../types/cypress-npm-api.d.ts + * @param {Cypress.ThirdPartyComponentFrameworkDefinition} config + * @returns {Cypress.ThirdPartyComponentFrameworkDefinition} the configuration passed in parameter + */ + defineComponentFramework (config) { + return config + }, } module.exports = cypressModuleApi diff --git a/cli/lib/exec/run.js b/cli/lib/exec/run.js index e070205901b1..5eedabc27b53 100644 --- a/cli/lib/exec/run.js +++ b/cli/lib/exec/run.js @@ -45,6 +45,10 @@ const processRunOptions = (options = {}) => { const args = ['--run-project', options.project] + if (options.autoCancelAfterFailures || options.autoCancelAfterFailures === 0 || options.autoCancelAfterFailures === false) { + args.push('--auto-cancel-after-failures', options.autoCancelAfterFailures) + } + if (options.browser) { args.push('--browser', options.browser) } diff --git a/cli/lib/util.js b/cli/lib/util.js index 1a5e54899018..30a4f763ef68 100644 --- a/cli/lib/util.js +++ b/cli/lib/util.js @@ -192,6 +192,7 @@ const dequote = (str) => { const parseOpts = (opts) => { opts = _.pick(opts, + 'autoCancelAfterFailures', 'browser', 'cachePath', 'cacheList', diff --git a/cli/test/lib/cli_spec.js b/cli/test/lib/cli_spec.js index e5d8506fe0a2..bf6ebf97cb02 100644 --- a/cli/test/lib/cli_spec.js +++ b/cli/test/lib/cli_spec.js @@ -493,6 +493,16 @@ describe('cli', () => { this.exec('run --ci-build-id "123" --group "staging"') expect(run.start).to.be.calledWith({ ciBuildId: '123', group: 'staging' }) }) + + it('call run with --auto-cancel-after-failures', () => { + this.exec('run --auto-cancel-after-failures 4') + expect(run.start).to.be.calledWith({ autoCancelAfterFailures: '4' }) + }) + + it('call run with --auto-cancel-after-failures with false', () => { + this.exec('run --auto-cancel-after-failures false') + expect(run.start).to.be.calledWith({ autoCancelAfterFailures: 'false' }) + }) }) context('cypress open', () => { diff --git a/cli/test/lib/cypress_spec.js b/cli/test/lib/cypress_spec.js index 44579d7ac926..0ed0dd9ef0ea 100644 --- a/cli/test/lib/cypress_spec.js +++ b/cli/test/lib/cypress_spec.js @@ -100,10 +100,27 @@ describe('cypress', function () { } it('calls run#start, passing in options', () => { - return cypress.run({ spec: 'foo' }) + return cypress.run({ spec: 'foo', autoCancelAfterFailures: 4 }) .then(getStartArgs) .then((args) => { expect(args.spec).to.equal('foo') + expect(args.autoCancelAfterFailures).to.equal(4) + }) + }) + + it('calls run#start, passing in autoCancelAfterFailures false', () => { + return cypress.run({ autoCancelAfterFailures: false }) + .then(getStartArgs) + .then((args) => { + expect(args.autoCancelAfterFailures).to.equal(false) + }) + }) + + it('calls run#start, passing in autoCancelAfterFailures 0', () => { + return cypress.run({ autoCancelAfterFailures: 0 }) + .then(getStartArgs) + .then((args) => { + expect(args.autoCancelAfterFailures).to.equal(0) }) }) diff --git a/cli/test/lib/exec/run_spec.js b/cli/test/lib/exec/run_spec.js index a79d1a6e0067..312d77791f3f 100644 --- a/cli/test/lib/exec/run_spec.js +++ b/cli/test/lib/exec/run_spec.js @@ -216,5 +216,23 @@ describe('exec run', function () { ]) }) }) + + it('spawns with --auto-cancel-after-failures value', function () { + return run.start({ autoCancelAfterFailures: 4 }) + .then(() => { + expect(spawn.start).to.be.calledWith([ + '--run-project', process.cwd(), '--auto-cancel-after-failures', 4, + ]) + }) + }) + + it('spawns with --auto-cancel-after-failures value false', function () { + return run.start({ autoCancelAfterFailures: false }) + .then(() => { + expect(spawn.start).to.be.calledWith([ + '--run-project', process.cwd(), '--auto-cancel-after-failures', false, + ]) + }) + }) }) }) diff --git a/cli/types/cypress-npm-api.d.ts b/cli/types/cypress-npm-api.d.ts index a7051b7f1462..41a38abfdacd 100644 --- a/cli/types/cypress-npm-api.d.ts +++ b/cli/types/cypress-npm-api.d.ts @@ -95,6 +95,10 @@ declare namespace CypressCommandLine { * Specify the specs to run */ spec: string + /** + * Specify the number of failures to cancel a run being recorded to the Cloud or false to disable auto-cancellation. + */ + autoCancelAfterFailures: number | false } /** @@ -393,6 +397,21 @@ declare module 'cypress' { * @returns {Cypress.ConfigOptions} the configuration passed in parameter */ defineConfig(config: Cypress.ConfigOptions): Cypress.ConfigOptions + + /** + * Provides automatic code completion for Component Frameworks Definitions. + * While it's not strictly necessary for Cypress to parse your configuration, we + * recommend wrapping your Component Framework Definition object with `defineComponentFramework()` + * @example + * module.exports = defineComponentFramework({ + * type: 'cypress-ct-solid-js' + * }) + * + * @see ../types/cypress-npm-api.d.ts + * @param {Cypress.ThirdPartyComponentFrameworkDefinition} config + * @returns {Cypress.ThirdPartyComponentFrameworkDefinition} the configuration passed in parameter + */ + defineComponentFramework(config: Cypress.ThirdPartyComponentFrameworkDefinition): Cypress.ThirdPartyComponentFrameworkDefinition } // export Cypress NPM module interface diff --git a/cli/types/cypress.d.ts b/cli/types/cypress.d.ts index 3dfaab987170..d381933ace47 100644 --- a/cli/types/cypress.d.ts +++ b/cli/types/cypress.d.ts @@ -53,6 +53,9 @@ declare namespace Cypress { interface QueryFn { (this: Command, ...args: Parameters): (subject: any) => any } + interface QueryFnWithOriginalFn { + (this: Command, originalFn: QueryFn, ...args: Parameters): (subject: any) => any + } interface ObjectLike { [key: string]: any } @@ -648,6 +651,12 @@ declare namespace Cypress { * @see https://on.cypress.io/api/custom-queries */ addQuery(name: T, fn: QueryFn): void + + /** + * Overwrite an existing Cypress query with a new implementation + * @see https://on.cypress.io/api/custom-queries + */ + overwriteQuery(name: T, fn: QueryFnWithOriginalFn): void } /** @@ -786,6 +795,12 @@ declare namespace Cypress { */ off: Actions + /** + * Used to include dependencies within the cy.origin() callback + * @see https://on.cypress.io/origin + */ + require: (id: string) => T + /** * Trigger action * @private @@ -793,7 +808,7 @@ declare namespace Cypress { action: (action: string, ...args: any[]) => any[] | void /** - * Load files + * Load files * @private */ onSpecWindow: (window: Window, specList: string[] | Array<() => Promise>) => void @@ -1801,9 +1816,21 @@ declare namespace Cypress { * * @see https://on.cypress.io/reload * @example + * cy.visit('http://localhost:3000/admin') * cy.reload() */ - reload(options?: Partial): Chainable + reload(): Chainable + /** + * Reload the page. + * + * @see https://on.cypress.io/reload + * @param {Partial} options Pass in an options object to modify the default behavior of cy.reload() + * @example + * // Reload the page, do not log it in the command log and timeout after 15s + * cy.visit('http://localhost:3000/admin') + * cy.reload({log: false, timeout: 15000}) + */ + reload(options: Partial): Chainable /** * Reload the page without cache * @@ -1815,6 +1842,18 @@ declare namespace Cypress { * cy.reload(true) */ reload(forceReload: boolean): Chainable + /** + * Reload the page without cache and with log and timeout options + * + * @see https://on.cypress.io/reload + * @param {Boolean} forceReload Whether to reload the current page without using the cache. true forces the reload without cache. + * @param {Partial} options Pass in an options object to modify the default behavior of cy.reload() + * @example + * // Reload the page without using the cache, do not log it in the command log and timeout after 15s + * cy.visit('http://localhost:3000/admin') + * cy.reload(true, {log: false, timeout: 15000}) + */ + reload(forceReload: boolean, options: Partial): Chainable /** * Make an HTTP GET request. @@ -3126,7 +3165,7 @@ declare namespace Cypress { */ experimentalRunAllSpecs?: boolean /** - * Enables support for require/import within cy.origin. + * Enables support for `Cypress.require()` for including dependencies within the `cy.origin()` callback. * @default false */ experimentalOriginDependencies?: boolean @@ -3244,6 +3283,179 @@ declare namespace Cypress { type PickConfigOpt = T extends keyof DefineDevServerConfig ? DefineDevServerConfig[T] : any + interface DependencyToInstall { + dependency: CypressComponentDependency + satisfied: boolean + loc: string | null + detectedVersion: string | null + } + + interface CypressComponentDependency { + /** + * Unique idenitifer. + * @example 'reactscripts' + */ + type: string + + /** + * Name to display in the user interface. + * @example "React Scripts" + */ + name: string + + /** + * Package name on npm. + * @example react-scripts + */ + package: string + + /** + * Code to run when installing. Version is optional. + * + * Should be @. + * + * @example `react` + * @example `react@18` + * @example `react-scripts` + */ + installer: string + + /** + * Description shown in UI. It is recommended to use the same one the package uses on npm. + * @example 'Create React apps with no build configuration' + */ + description: string + + /** + * Minimum version supported. Should conform to Semantic Versioning as used in `package.json`. + * @see https://docs.npmjs.com/cli/v9/configuring-npm/package-json#dependencies + * @example '^=4.0.0 || ^=5.0.0' + * @example '^2.0.0' + */ + minVersion: string + } + + interface ResolvedComponentFrameworkDefinition { + /** + * A semantic, unique identifier. + * Must begin with `cypress-ct-` or `@org/cypress-ct-` for third party implementations. + * @example 'reactscripts' + * @example 'nextjs' + * @example 'cypress-ct-solid-js' + */ + type: string + + /** + * Used as the flag for `getPreset` for meta framworks, such as finding the webpack config for CRA, Angular, etc. + * It is also the name of the string added to `cypress.config` + * + * @example + * export default { + * component: { + * devServer: { + * framework: 'create-react-app' // can be 'next', 'create-react-app', etc etc. + * } + * } + * } + */ + configFramework: string + + /** + * Library (React, Vue) or template (aka "meta framework") (CRA, Next.js, Angular) + */ + category: 'library' | 'template' + + /** + * Name displayed in Launchpad when doing initial setup. + * @example 'Solid.js' + * @example 'Create React App' + */ + name: string + + /** + * Supported bundlers. + */ + supportedBundlers: Array<'webpack' | 'vite'> + + /** + * Used to attempt to automatically select the correct framework/bundler from the dropdown. + * + * @example + * const SOLID_DETECTOR: Dependency = { + * type: 'solid', + * name: 'Solid.js', + * package: 'solid-js', + * installer: 'solid-js', + * description: 'Solid is a declarative JavaScript library for creating user interfaces', + * minVersion: '^1.0.0', + * } + */ + detectors: CypressComponentDependency[] + + /** + * Array of required dependencies. This could be the bundler and JavaScript library. + */ + dependencies: (bundler: 'webpack' | 'vite', projectPath: string) => Promise + + /** + * This is used interally by Cypress for the "Create From Component" feature. + */ + codeGenFramework?: 'react' | 'vue' | 'svelte' | 'angular' + + /** + * This is used interally by Cypress for the "Create From Component" feature. + * @example '*.{js,jsx,tsx}' + */ + glob?: string + + /** + * This is the path to get mount, eg `import { mount } from , + * @example: `cypress-ct-solidjs/src/mount` + */ + mountModule: (projectPath: string) => Promise + + /** + * Support status. Internally alpha | beta | full. + * Community integrations are "community". + */ + supportStatus: 'alpha' | 'beta' | 'full' | 'community' + + /** + * Function returning string for used for the component-index.html file. + * Cypress provides a default if one isn't specified for third party integrations. + */ + componentIndexHtml?: () => string + + /** + * Used for the Create From Comopnent feature. + * This is currently not supported for third party frameworks. + */ + specPattern?: '**/*.cy.ts' + } + + type ComponentFrameworkDefinition = Omit & { + dependencies: (bundler: 'webpack' | 'vite') => CypressComponentDependency[] + } + + /** + * Certain properties are not supported for third party frameworks right now, + * such as ones related to the "Create From" feature. This is a subset of + * properties that are exposed for public usage. + */ + + type ThirdPartyComponentFrameworkDefinition = Pick & { + /** + * @example `cypress-ct-${string} for third parties. Any string is valid internally. + */ + type: string + + /** + * Raw SVG icon that will be displayed in the Project Setup Wizard. Used for third parties that + * want to render a custom icon. + */ + icon?: string + } + interface AngularDevServerProjectConfig { root: string sourceRoot: string @@ -3530,12 +3742,49 @@ declare namespace Cypress { action: 'select' | 'drag-drop' } + /** + * Options that control how the `cy.setCookie` command + * sets the cookie in the browser. + * @see https://on.cypress.io/setcookie#Arguments + */ interface SetCookieOptions extends Loggable, Timeoutable { + /** + * The path of the cookie. + * @default "/" + */ path: string + /** + * Represents the domain the cookie belongs to (e.g. "docs.cypress.io", "github.com"). + * @default location.hostname + */ domain: string + /** + * Whether a cookie's scope is limited to secure channels, such as HTTPS. + * @default false + */ secure: boolean + /** + * Whether or not the cookie is HttpOnly, meaning the cookie is inaccessible to client-side scripts. + * The Cypress cookie API has access to HttpOnly cookies. + * @default false + */ httpOnly: boolean + /** + * Whether or not the cookie is a host-only cookie, meaning the request's host must exactly match the domain of the cookie. + * @default false + */ + hostOnly: boolean + /** + * The cookie's expiry time, specified in seconds since Unix Epoch. + * The default is expiry is 20 years in the future from current time. + */ expiry: number + /** + * The cookie's SameSite value. If set, should be one of `lax`, `strict`, or `no_restriction`. + * `no_restriction` is the equivalent of `SameSite=None`. Pass `undefined` to use the browser's default. + * Note: `no_restriction` can only be used if the secure flag is set to `true`. + * @default undefined + */ sameSite: SameSiteStatus } @@ -5776,6 +6025,7 @@ declare namespace Cypress { specPattern?: string[] system: SystemDetails tag?: string + autoCancelAfterFailures?: number | false } interface DevServerConfig { @@ -6064,6 +6314,7 @@ declare namespace Cypress { value: string path: string domain: string + hostOnly?: boolean httpOnly: boolean secure: boolean expiry?: number diff --git a/cli/types/tests/cypress-npm-api-test.ts b/cli/types/tests/cypress-npm-api-test.ts index 3a0feebd7df6..ba04ed7a5802 100644 --- a/cli/types/tests/cypress-npm-api-test.ts +++ b/cli/types/tests/cypress-npm-api-test.ts @@ -1,6 +1,6 @@ // type tests for Cypress NPM module // https://on.cypress.io/module-api -import cypress, { defineConfig } from 'cypress' +import cypress, { defineComponentFramework, defineConfig } from 'cypress' cypress.run // $ExpectType (options?: Partial | undefined) => Promise cypress.open // $ExpectType (options?: Partial | undefined) => Promise @@ -55,6 +55,32 @@ const config = defineConfig({ modifyObstructiveCode: true }) +const solid = { + type: 'solid-js', + name: 'Solid.js', + package: 'solid-js', + installer: 'solid-js', + description: 'Solid is a declarative JavaScript library for creating user interfaces', + minVersion: '^1.0.0' +} + +const thirdPartyFrameworkDefinition = defineComponentFramework({ + type: 'cypress-ct-third-party', + name: 'Third Party', + dependencies: (bundler) => [solid], + detectors: [solid], + supportedBundlers: ['vite', 'webpack'], + icon: '...' +}) + +const thirdPartyFrameworkDefinitionInvalidStrings = defineComponentFramework({ + type: 'cypress-ct-third-party', + name: 'Third Party', + dependencies: (bundler) => [], + detectors: [{}], // $ExpectError + supportedBundlers: ['metro', 'webpack'] // $ExpectError +}) + // component options const componentConfigNextWebpack: Cypress.ConfigOptions = { component: { diff --git a/cli/types/tests/cypress-tests.ts b/cli/types/tests/cypress-tests.ts index ec6bb1b9facc..4b036baa10e5 100644 --- a/cli/types/tests/cypress-tests.ts +++ b/cli/types/tests/cypress-tests.ts @@ -1063,6 +1063,14 @@ namespace CypressSetCookieTests { expiry: 12345, sameSite: 'lax', }) + cy.setCookie('name', 'value', { + domain: 'www.foobar.com', + path: '/', + secure: false, + httpOnly: false, + hostOnly: true, + sameSite: 'lax', + }) cy.setCookie('name', 'value', { log: true, timeout: 10, domain: 'localhost' }) cy.setCookie('name') // $ExpectError @@ -1164,3 +1172,20 @@ namespace CypressTraversalTests { cy.wrap({}).parentsUntil('#myItem', 'a', { log: false, timeout: 100 }) // $ExpectType Chainable> cy.wrap({}).parentsUntil('#myItem', 'a', { log: 'true' }) // $ExpectError } + +namespace CypressRequireTests { + Cypress.require('lodash') + + const anydep = Cypress.require('anydep') + anydep // $ExpectType any + + const sinon = Cypress.require('sinon') as typeof import('sinon') + sinon // $ExpectType SinonStatic + + const lodash = Cypress.require<_.LoDashStatic>('lodash') + lodash // $ExpectType LoDashStatic + + Cypress.require() // $ExpectError + Cypress.require({}) // $ExpectError + Cypress.require(123) // $ExpectError +} diff --git a/guides/code-signing.md b/guides/code-signing.md index db166d937cf0..75cb40b39a92 100644 --- a/guides/code-signing.md +++ b/guides/code-signing.md @@ -4,20 +4,37 @@ Code signing is done for the Windows and Mac distributions of Cypress when they `electron-builder` handles code signing during the `create-build-artifacts` jobs. This guide assumes that the reader is already familiar with [`electron-builder`'s Code Signing documentation](https://www.electron.build/code-signing). -## Installing a new Mac code signing key +## Rotating the Mac code signing key -Follow the directions supplied by `electron-builder`: https://www.electron.build/code-signing#travis-appveyor-and-other-ci-servers +1. On a Mac, log in to Xcode using Cypress's Apple developer program identity. +2. Follow Apple's [Create, export, and delete signing certificates](https://help.apple.com/xcode/mac/current/#/dev154b28f09) instructions: + 1. Follow "View signing certificates". + 2. Follow "Create a signing certificate", and choose the type of "Developer ID Application" when prompted. + 3. Follow "Export a signing certificate". Set a strong passphrase when prompted, which will later become `CSC_KEY_PASSWORD`. +3. Upload the exported, encrypted `.p12` file to the [Code Signing folder][code-signing-folder] in Google Drive and obtain a public [direct download link][direct-download]. +4. Within the `test-runner:sign-mac-binary` CircleCI context, set `CSC_LINK` to that direct download URL and set `CSC_KEY_PASSWORD` to the passphrase used to encrypt the `p12` file. -Set the environment variables `CSC_LINK` and `CSC_KEY_PASSWORD` in the `test-runner:sign-mac-binary` CircleCI context. +## Rotating the Windows code signing key -## Installing a new Windows code signing key - -1. Obtain the private key and full certificate chain in ASCII-armored PEM format and store each in a file (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN CERTIFICATE-----`) -2. Using `openssl`, convert the plaintext PEM public and private key to binary PKCS#12/PFX format and encrypt it with a real strong password. +1. Generate a certificate signing request (CSR) file using `openssl`. For example: + ```shell + # generate a new private key + openssl genrsa -out win-code-signing.key 4096 + # create a CSR using the private key + openssl req -new -key win-code-signing.key -out win-code-signing.csr + ``` +2. Obtain a certificate by submitting the CSR to SSL.com using the Cypress SSL.com account. + * If renewing, follow the [renewal instructions](https://www.ssl.com/how-to/renewing-ev-ov-and-iv-certificates/). + * If rotating, contact SSL.com's support to request certificate re-issuance. +3. Obtain the full certificate chain from SSL.com's dashboard in ASCII-armored PEM format and save it as `win-code-signing.crt`. (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN CERTIFICATE-----`) +4. Using `openssl`, convert the plaintext PEM public and private key to binary PKCS#12/PFX format and encrypt it with a strong passphrase, which will later become `CSC_KEY_PASSWORD`. ```shell - ➜ openssl pkcs12 -export -inkey key.pem -in cert.pem -out encrypted.pfx + ➜ openssl pkcs12 -export -inkey win-code-signing.key -in win-code-signing.crt -out encrypted-win-code-signing.pfx Enter Export Password: Verifying - Enter Export Password: ``` -3. Upload the `encrypted.pfx` file to the Cypress App Google Drive and obtain a [direct download link](http://www.syncwithtech.org/p/direct-download-link-generator.html). -4. Within the `test-runner:sign-windows-binary` CircleCI context, set `CSC_LINK` to that URL and `CSC_KEY_PASSWORD` to the password. \ No newline at end of file +5. Upload the `encrypted-win-code-signing.pfx` file to the [Code Signing folder][code-signing-folder] in Google Drive and obtain a public [direct download link][direct-download]. +6. Within the `test-runner:sign-windows-binary` CircleCI context, set `CSC_LINK` to that direct download URL and set `CSC_KEY_PASSWORD` to the passphrase used to encrypt the `pfx` file. + +[direct-download]: https://www.syncwithtech.org/p/direct-download-link-generator.html +[code-signing-folder]: https://drive.google.com/drive/u/1/folders/1CsuoXRDmXvd3ImvFI-sChniAMJBASUW diff --git a/guides/release-process.md b/guides/release-process.md index 4b399977a717..20d05e3c7406 100644 --- a/guides/release-process.md +++ b/guides/release-process.md @@ -13,7 +13,6 @@ The `@cypress/`-namespaced NPM packages that live inside the [`/npm`](../npm) di - Ensure you have the following permissions set up: - An AWS account with permission to access and write to the AWS S3, i.e. the Cypress CDN. - Permissions for your npm account to publish the `cypress` package. - - Permissions to update releases in ZenHub. - [Set up](https://cypress-io.atlassian.net/wiki/spaces/INFRA/pages/1534853121/AWS+SSO+Cypress) an AWS SSO profile with the [Team-CypressApp-Prod](https://cypress-io.atlassian.net/wiki/spaces/INFRA/pages/1534853121/AWS+SSO+Cypress#Team-CypressApp-Prod) role. The release scripts assumes the name of your profile is `prod`. Make sure to open the "App Developer" expando for some necessary config values. Your AWS config file should end up looking like the following: @@ -27,19 +26,17 @@ The `@cypress/`-namespaced NPM packages that live inside the [`/npm`](../npm) di ``` - Set up the following environment variables: - - For the `release-automations` steps, you will need setup the following envs: + - For the `release-automations` step, you will need setup the following envs: - GitHub token - Found in 1Password. - - [ZenHub API token](https://app.zenhub.com/dashboard/tokens) to interact with Zenhub. Found in 1Password. - The `cypress-bot` GitHub app credentials. Found in 1Password. ```text GITHUB_TOKEN="..." - ZENHUB_API_TOKEN="..." GITHUB_APP_CYPRESS_INSTALLATION_ID= GITHUB_APP_ID= GITHUB_PRIVATE_KEY= ``` - - For purging the Cloudflare cache (part of the `move-binaries` step), you'll need `CF_ZONEID` and `CF_TOKEN` set. These can be found in 1Password. + - For purging the Cloudflare cache (needed for the `prepare-release-artifacts` script in step 6), you'll need `CF_ZONEID` and `CF_TOKEN` set. These can be found in 1Password. ```text CF_ZONEID="..." CF_TOKEN="..." @@ -78,13 +75,14 @@ In the following instructions, "X.Y.Z" is used to denote the [next version of Cy - [cypress-realworld-app](https://github.com/cypress-io/cypress-realworld-app) uses yarn and represents a typical consumer implementation. - Optionally, do more thorough tests, for example test the new version of Cypress against the Cypress Cloud repo. -2. Confirm that every issue labeled [stage: pending release](https://github.com/cypress-io/cypress/issues?q=label%3A%22stage%3A+pending+release%22+is%3Aclosed) has a ZenHub release set. **Tip:** there is a command in [`release-automations`](https://github.com/cypress-io/release-automations)'s `issues-in-release` tool to list and check such issues. Without a ZenHub release issues will not be included in the right changelog. Also ensure that every closed issue in any obsolete releases are moved to the appropriate release in ZehHub. For example, if the open releases are 9.5.5 and 9.6.0, the current release is 9.6.0, then all closed issues marked as 9.5.5 should be moved to 9.6.0. Ensure that there are no commits on `develop` since the last release that are user facing and aren't marked with the current release. +2. Ensure all changes to the links manifest to [`on.cypress.io`](https://github.com/cypress-io/cypress-services/tree/develop/packages/on) have been merged to `develop` and deployed. 3. Create a Release PR Bump, submit, get approvals on, and merge a new PR. This PR Should: - - Bump the Cypress `version` in [`package.json`](package.json) - - Bump the [`packages/example`](../packages/example) dependency if there is a new [`cypress-example-kitchensink`](https://github.com/cypress-io/cypress-example-kitchensink/releases) version - - Follow the writing the [Cypress Changelog release steps](./writing-the-cypress-changelog.md#release) to update the [`cli/CHANGELOG.md`](../cli/CHANGELOG.md). -4. Once the `develop` branch is passing for all test projects with the new changes and the `linux-x64` binary is present at `https://cdn.cypress.io/beta/binary/X.Y.Z/linux-x64/develop-/cypress.zip`, and the `linux-x64` cypress npm package is present at `https://cdn.cypress.io/beta/npm/X.Y.Z/linux-x64/develop-/cypress.tgz`, publishing can proceed. + - Bump the Cypress `version` in [`package.json`](package.json) + - Bump the [`packages/example`](../packages/example) dependency if there is a new [`cypress-example-kitchensink`](https://github.com/cypress-io/cypress-example-kitchensink/releases) version + - Follow the writing the [Cypress Changelog release steps](./writing-the-cypress-changelog.md#release) to update the [`cli/CHANGELOG.md`](../cli/CHANGELOG.md). + +4. Once the `develop` branch is passing in CI and you have confirmed the `cypress-bot` has commented on the commit with the pre-release versions for `darwin-x64`, `darwin-arm64`, `linux-x64`,`linux-arm64`, and `win32-x64`, publishing can proceed. 5. Log into AWS SSO with `aws sso login --profile `. If you have setup your credentials under a different profile than `prod`, be sure to set the `AWS_PROFILE` environment variable to that profile name for the remaining steps. For example, if you are using `production` instead of `prod`, do `export AWS_PROFILE=production`. @@ -142,36 +140,29 @@ In the following instructions, "X.Y.Z" is used to denote the [next version of Cy yarn binary-release --version X.Y.Z ``` -15. If needed, push out any updated changes to the links manifest to [`on.cypress.io`](https://github.com/cypress-io/cypress-services/tree/develop/packages/on). - -16. Merge the documentation PR from step 11 and the new docker image PR created in step 12 to release the image. - -17. If needed, deploy the updated [`cypress-example-kitchensink`][cypress-example-kitchensink] to `example.cypress.io` by following [these instructions under "Deployment"](../packages/example/README.md). +15. Merge the documentation PR from step 11 and the new docker image PR created in step 12 to release the image. -18. Update the releases in [ZenHub](https://app.zenhub.com/workspaces/test-runner-5c3ea3baeb1e75374f7b0708/reports/release): - - Close the current release in ZenHub. - - Create a new patch release (and a new minor release, if this is a minor release) in ZenHub, and schedule them both to be completed 2 weeks from the current date. - - Move all issues that are still open from the current release to the appropriate future release. +16. If needed, deploy the updated [`cypress-example-kitchensink`][cypress-example-kitchensink] to `example.cypress.io` by following [these instructions under "Deployment"](../packages/example/README.md). -19. Once the release is complete, create a Github tag off of the release commit which bumped the version: +17. Once the release is complete, create a Github tag off of the release commit which bumped the version: ```shell git checkout develop git pull origin develop git log --pretty=oneline - # copy sha of the previous commit + # copy sha of the version bump commit git tag -a vX.Y.Z -m vX.Y.Z git push origin vX.Y.Z ``` -20. Create a new [GitHub release](https://github.com/cypress-io/cypress/releases). Choose the tag you created previously and add contents to match previous releases. +18. Create a new [GitHub release](https://github.com/cypress-io/cypress/releases). Choose the tag you created previously and add contents to match previous releases. -21. Inside of [cypress-io/release-automations][release-automations], run the following to add a comment to each GH issue that has been resolved with the new published version: +19. Add a comment to each GH issue that has been resolved with the new published version. Download the `releaseData.json` artifact from the `verify-release-readiness` CircleCI job and run the following command inside of [cypress-io/release-automations][release-automations]: ```shell - cd packages/issues-in-release && npm run do:comment -- --release X.Y.Z + cd packages/issues-in-release && npm run do:comment -- --release-data ``` -22. Confirm there are no issues with the label [stage: pending release](https://github.com/cypress-io/cypress/issues?q=label%3A%22stage%3A+pending+release%22+is%3Aclosed) left +22. Confirm there are no issues from the release with the label [stage: pending release](https://github.com/cypress-io/cypress/issues?q=label%3A%22stage%3A+pending+release%22+is%3Aclosed) left. 23. Check all `cypress-test-*` and `cypress-example-*` repositories, and if there is a branch named `x.y.z` for testing the features or fixes from the newly published version `x.y.z`, update that branch to refer to the newly published NPM version in `package.json`. Then, get the changes approved and merged into that project's main branch. For projects without a `x.y.z` branch, you can go to the Renovate dependency issue and check the box next to `Update dependency cypress to X.Y.Z`. It will automatically create a PR. Once it passes, you can merge it. Try updating at least the following projects: - [cypress-example-todomvc](https://github.com/cypress-io/cypress-example-todomvc/issues/99) diff --git a/npm/angular/CHANGELOG.md b/npm/angular/CHANGELOG.md index f81c22d0854c..5e04f5bb572a 100644 --- a/npm/angular/CHANGELOG.md +++ b/npm/angular/CHANGELOG.md @@ -1,3 +1,10 @@ +# [@cypress/angular-v2.0.2](https://github.com/cypress-io/cypress/compare/@cypress/angular-v2.0.1...@cypress/angular-v2.0.2) (2023-02-17) + + +### Bug Fixes + +* mount component in [data-cy-root] ([#25807](https://github.com/cypress-io/cypress/issues/25807)) ([104eef5](https://github.com/cypress-io/cypress/commit/104eef5dfb4b619a748e7ddd59534eadb1044ae7)) + # [@cypress/angular-v2.0.1](https://github.com/cypress-io/cypress/compare/@cypress/angular-v2.0.0...@cypress/angular-v2.0.1) (2022-11-08) diff --git a/npm/angular/src/mount.ts b/npm/angular/src/mount.ts index a0be116911b2..be8c85294eea 100644 --- a/npm/angular/src/mount.ts +++ b/npm/angular/src/mount.ts @@ -14,6 +14,7 @@ import { getTestBed, TestModuleMetadata, TestBed, + TestComponentRenderer, } from '@angular/core/testing' import { BrowserDynamicTestingModule, @@ -21,6 +22,7 @@ import { } from '@angular/platform-browser-dynamic/testing' import { setupHooks, + getContainerEl, } from '@cypress/mount-utils' /** @@ -169,6 +171,22 @@ function bootstrapModule ( return testModuleMetaData } +@Injectable() +export class CypressTestComponentRenderer extends TestComponentRenderer { + override insertRootElement (rootElId: string) { + this.removeAllRootElements() + + const rootElement = getContainerEl() + + rootElement.setAttribute('id', rootElId) + document.body.appendChild(rootElement) + } + + override removeAllRootElements () { + getContainerEl().innerHTML = '' + } +} + /** * Initializes the TestBed * @@ -186,6 +204,8 @@ function initTestBed ( ...bootstrapModule(componentFixture, config), }) + getTestBed().overrideProvider(TestComponentRenderer, { useValue: new CypressTestComponentRenderer() }) + return componentFixture } diff --git a/npm/vite-dev-server/CHANGELOG.md b/npm/vite-dev-server/CHANGELOG.md index 2676351fe72c..baebaca46183 100644 --- a/npm/vite-dev-server/CHANGELOG.md +++ b/npm/vite-dev-server/CHANGELOG.md @@ -1,3 +1,10 @@ +# [@cypress/vite-dev-server-v5.0.3](https://github.com/cypress-io/cypress/compare/@cypress/vite-dev-server-v5.0.2...@cypress/vite-dev-server-v5.0.3) (2023-02-17) + + +### Bug Fixes + +* allow running tests outside Vite project root folder ([#25801](https://github.com/cypress-io/cypress/issues/25801)) ([d54fa65](https://github.com/cypress-io/cypress/commit/d54fa65f587da2b86c8d3140f44c653888fb62ee)) + # [@cypress/vite-dev-server-v5.0.2](https://github.com/cypress-io/cypress/compare/@cypress/vite-dev-server-v5.0.1...@cypress/vite-dev-server-v5.0.2) (2022-12-09) diff --git a/npm/vite-dev-server/client/initCypressTests.js b/npm/vite-dev-server/client/initCypressTests.js index 4406c9ab636d..57b983ca8fd2 100644 --- a/npm/vite-dev-server/client/initCypressTests.js +++ b/npm/vite-dev-server/client/initCypressTests.js @@ -32,13 +32,17 @@ if (supportFile) { }) } +// Using relative path wouldn't allow to load tests outside Vite project root folder +// So we use the "@fs" bit to load the test file using its absolute path +const testFileAbsolutePathRoute = `${devServerPublicPathRoute}/@fs${CypressInstance.spec.absolute}` + /* Spec file import logic */ // We need a slash before /src/my-spec.js, this does not happen by default. importsToLoad.push({ - load: () => import(`${devServerPublicPathRoute}/${CypressInstance.spec.relative}`), + load: () => import(testFileAbsolutePathRoute), absolute: CypressInstance.spec.absolute, relative: CypressInstance.spec.relative, - relativeUrl: `${devServerPublicPathRoute}/${CypressInstance.spec.relative}`, + relativeUrl: testFileAbsolutePathRoute, }) if (!CypressInstance) { diff --git a/npm/webpack-batteries-included-preprocessor/CHANGELOG.md b/npm/webpack-batteries-included-preprocessor/CHANGELOG.md index b5df0a53bb14..b9e2d153cf63 100644 --- a/npm/webpack-batteries-included-preprocessor/CHANGELOG.md +++ b/npm/webpack-batteries-included-preprocessor/CHANGELOG.md @@ -1,3 +1,10 @@ +# [@cypress/webpack-batteries-included-preprocessor-v2.4.0](https://github.com/cypress-io/cypress/compare/@cypress/webpack-batteries-included-preprocessor-v2.3.0...@cypress/webpack-batteries-included-preprocessor-v2.4.0) (2023-02-15) + + +### Features + +* Bundle cy.origin() dependencies at runtime ([#25626](https://github.com/cypress-io/cypress/issues/25626)) ([41512c4](https://github.com/cypress-io/cypress/commit/41512c416a80e5158752fef9ffbe722402a5ada4)) + # [@cypress/webpack-batteries-included-preprocessor-v2.3.0](https://github.com/cypress-io/cypress/compare/@cypress/webpack-batteries-included-preprocessor-v2.2.4...@cypress/webpack-batteries-included-preprocessor-v2.3.0) (2022-12-02) diff --git a/npm/webpack-batteries-included-preprocessor/index.js b/npm/webpack-batteries-included-preprocessor/index.js index 7b28ecb09348..897a5dbecbd6 100644 --- a/npm/webpack-batteries-included-preprocessor/index.js +++ b/npm/webpack-batteries-included-preprocessor/index.js @@ -180,6 +180,16 @@ preprocessor.defaultOptions = { watchOptions: {}, } +preprocessor.getFullWebpackOptions = (filePath, typescript) => { + const options = { typescript } + + options.webpackOptions = getDefaultWebpackOptions() + + addTypeScriptConfig({ filePath }, options) + + return options.webpackOptions +} + // for testing purposes, but do not add this to the typescript interface preprocessor.__reset = webpackPreprocessor.__reset diff --git a/npm/webpack-dev-server/CHANGELOG.md b/npm/webpack-dev-server/CHANGELOG.md index 9b09eaa932c6..bf0bc985bdde 100644 --- a/npm/webpack-dev-server/CHANGELOG.md +++ b/npm/webpack-dev-server/CHANGELOG.md @@ -1,3 +1,17 @@ +# [@cypress/webpack-dev-server-v3.3.0](https://github.com/cypress-io/cypress/compare/@cypress/webpack-dev-server-v3.2.4...@cypress/webpack-dev-server-v3.3.0) (2023-02-21) + + +### Features + +* Public API for CT Framework Definitions ([#25780](https://github.com/cypress-io/cypress/issues/25780)) ([1d3aab9](https://github.com/cypress-io/cypress/commit/1d3aab9d70acbce6d3571ab5b9df771f1c455964)), closes [#25713](https://github.com/cypress-io/cypress/issues/25713) + +# [@cypress/webpack-dev-server-v3.2.4](https://github.com/cypress-io/cypress/compare/@cypress/webpack-dev-server-v3.2.3...@cypress/webpack-dev-server-v3.2.4) (2023-02-20) + + +### Bug Fixes + +* **webpack-dev-server:** touch component-index during onSpecsChange to avoid writing to app file ([#25861](https://github.com/cypress-io/cypress/issues/25861)) ([87816de](https://github.com/cypress-io/cypress/commit/87816de1b7c4c3873ad791d71ac2af5aaa88e889)) + # [@cypress/webpack-dev-server-v3.2.3](https://github.com/cypress-io/cypress/compare/@cypress/webpack-dev-server-v3.2.2...@cypress/webpack-dev-server-v3.2.3) (2023-01-24) diff --git a/npm/webpack-dev-server/cypress/e2e/webpack-dev-server.cy.ts b/npm/webpack-dev-server/cypress/e2e/webpack-dev-server.cy.ts index 4f587e24b6f1..06e85369ea81 100644 --- a/npm/webpack-dev-server/cypress/e2e/webpack-dev-server.cy.ts +++ b/npm/webpack-dev-server/cypress/e2e/webpack-dev-server.cy.ts @@ -39,4 +39,22 @@ describe('Config options', () => { expect(verifyFile).to.eq('OK') }) }) + + it('recompiles with new spec and custom indexHtmlFile', () => { + cy.scaffoldProject('webpack5_wds4-react') + cy.openProject('webpack5_wds4-react', ['--config-file', 'cypress-webpack-dev-server-custom-index.config.ts']) + cy.startAppServer('component') + + cy.visitApp() + + cy.withCtx(async (ctx) => { + await ctx.actions.file.writeFileInProject( + ctx.path.join('src', 'New.cy.js'), + await ctx.file.readFileInProject(ctx.path.join('src', 'App.cy.jsx')), + ) + }) + + cy.contains('New.cy.js').click() + cy.waitForSpecToFinish({ passCount: 2 }) + }) }) diff --git a/npm/webpack-dev-server/src/CypressCTWebpackPlugin.ts b/npm/webpack-dev-server/src/CypressCTWebpackPlugin.ts index 8cb128b2bbca..9aef4e5aa676 100644 --- a/npm/webpack-dev-server/src/CypressCTWebpackPlugin.ts +++ b/npm/webpack-dev-server/src/CypressCTWebpackPlugin.ts @@ -13,6 +13,7 @@ export interface CypressCTWebpackPluginOptions { supportFile: string | false devServerEvents: EventEmitter webpack: Function + indexHtmlFile: string } export type CypressCTContextOptions = Omit @@ -47,6 +48,7 @@ export class CypressCTWebpackPlugin { private supportFile: string | false private compilation: Webpack45Compilation | null = null private webpack: Function + private indexHtmlFile: string private readonly projectRoot: string private readonly devServerEvents: EventEmitter @@ -57,6 +59,7 @@ export class CypressCTWebpackPlugin { this.projectRoot = options.projectRoot this.devServerEvents = options.devServerEvents this.webpack = options.webpack + this.indexHtmlFile = options.indexHtmlFile } private addLoaderContext = (loaderContext: object, module: any) => { @@ -64,6 +67,7 @@ export class CypressCTWebpackPlugin { files: this.files, projectRoot: this.projectRoot, supportFile: this.supportFile, + indexHtmlFile: this.indexHtmlFile, } }; @@ -93,11 +97,16 @@ export class CypressCTWebpackPlugin { } /* - * `webpack --watch` watches the existing specs and their dependencies for changes, - * but we also need to add additional dependencies to our dynamic "browser.js" (generated - * using loader.ts) when new specs are created. This hook informs webpack that browser.js - * has been "updated on disk", causing a recompliation (and pulling the new specs in as - * dependencies). + * `webpack --watch` watches the existing specs and their dependencies for changes. + * When new specs are created, we need to trigger a recompilation to add the new specs + * as dependencies. This hook informs webpack that `component-index.html` has been "updated on disk", + * causing a recompilation (and pulling the new specs in as dependencies). We use the component + * index file because we know that it will be there since the project is using Component Testing. + * + * We were using `browser.js` before to cause a recompilation but we ran into an + * issue with MacOS Ventura that will not allow us to write to files inside of our application bundle. + * + * See https://github.com/cypress-io/cypress/issues/24398 */ private onSpecsChange = async (specs: Cypress.Cypress['spec'][]) => { if (!this.compilation || _.isEqual(specs, this.files)) { @@ -110,7 +119,7 @@ export class CypressCTWebpackPlugin { // eslint-disable-next-line no-restricted-syntax const utimesSync: UtimesSync = inputFileSystem.fileSystem.utimesSync ?? fs.utimesSync - utimesSync(path.resolve(__dirname, 'browser.js'), new Date(), new Date()) + utimesSync(path.join(this.projectRoot, this.indexHtmlFile), new Date(), new Date()) } /** diff --git a/npm/webpack-dev-server/src/devServer.ts b/npm/webpack-dev-server/src/devServer.ts index e7cabad50c17..675328144e22 100644 --- a/npm/webpack-dev-server/src/devServer.ts +++ b/npm/webpack-dev-server/src/devServer.ts @@ -114,7 +114,25 @@ export type PresetHandlerResult = { frameworkConfig: Configuration, sourceWebpac type Optional = Pick, K> & Omit +const thirdPartyDefinitionPrefixes = { + // matches @org/cypress-ct-* + namespacedPrefixRe: /^@.+?\/cypress-ct-.+/, + globalPrefix: 'cypress-ct-', +} + +export function isThirdPartyDefinition (framework: string) { + return framework.startsWith(thirdPartyDefinitionPrefixes.globalPrefix) || + thirdPartyDefinitionPrefixes.namespacedPrefixRe.test(framework) +} + async function getPreset (devServerConfig: WebpackDevServerConfig): Promise> { + const defaultWebpackModules = () => ({ sourceWebpackModulesResult: sourceDefaultWebpackDependencies(devServerConfig) }) + + // Third party library (eg solid-js, lit, etc) + if (devServerConfig.framework && isThirdPartyDefinition(devServerConfig.framework)) { + return defaultWebpackModules() + } + switch (devServerConfig.framework) { case 'create-react-app': return createReactAppHandler(devServerConfig) @@ -134,7 +152,7 @@ async function getPreset (devServerConfig: WebpackDevServerConfig): Promise { @@ -170,7 +170,7 @@ describe('#devServer', () => { await closeServer(close) }) - it('touches browser.js when a spec file is added and recompile', async function () { + it('touches component index when a spec file is added and recompile', async function () { // File watching only enabled when running in `open` mode cypressConfig.isTextTerminal = false const devServerEvents = new EventEmitter() @@ -187,13 +187,13 @@ describe('#devServer', () => { absolute: `${root}/test/fixtures/bar.spec.js`, } - const oldmtime = fs.statSync('./dist/browser.js').mtimeMs + const oldmtime = fs.statSync(cypressConfig.indexHtmlFile).mtimeMs await once(devServerEvents, 'dev-server:compile:success') devServerEvents.emit('dev-server:specs:changed', [newSpec]) await once(devServerEvents, 'dev-server:compile:success') - const updatedmtime = fs.statSync('./dist/browser.js').mtimeMs + const updatedmtime = fs.statSync(cypressConfig.indexHtmlFile).mtimeMs expect(oldmtime).to.not.equal(updatedmtime) diff --git a/npm/webpack-preprocessor/CHANGELOG.md b/npm/webpack-preprocessor/CHANGELOG.md index ea3f01d1b8eb..02be04fbf2ae 100644 --- a/npm/webpack-preprocessor/CHANGELOG.md +++ b/npm/webpack-preprocessor/CHANGELOG.md @@ -1,3 +1,10 @@ +# [@cypress/webpack-preprocessor-v5.17.0](https://github.com/cypress-io/cypress/compare/@cypress/webpack-preprocessor-v5.16.3...@cypress/webpack-preprocessor-v5.17.0) (2023-02-15) + + +### Features + +* Bundle cy.origin() dependencies at runtime ([#25626](https://github.com/cypress-io/cypress/issues/25626)) ([41512c4](https://github.com/cypress-io/cypress/commit/41512c416a80e5158752fef9ffbe722402a5ada4)) + # [@cypress/webpack-preprocessor-v5.16.3](https://github.com/cypress-io/cypress/compare/@cypress/webpack-preprocessor-v5.16.2...@cypress/webpack-preprocessor-v5.16.3) (2023-02-06) # [@cypress/webpack-preprocessor-v5.16.2](https://github.com/cypress-io/cypress/compare/@cypress/webpack-preprocessor-v5.16.1...@cypress/webpack-preprocessor-v5.16.2) (2023-02-02) diff --git a/npm/webpack-preprocessor/index.ts b/npm/webpack-preprocessor/index.ts index c61f9bf12291..b6662dd9e2f2 100644 --- a/npm/webpack-preprocessor/index.ts +++ b/npm/webpack-preprocessor/index.ts @@ -5,21 +5,11 @@ import * as events from 'events' import * as path from 'path' import webpack from 'webpack' import utils from './lib/utils' -import { crossOriginCallbackStore } from './lib/cross-origin-callback-store' import { overrideSourceMaps } from './lib/typescript-overrides' -import { compileCrossOriginCallbackFiles } from './lib/cross-origin-callback-compile' const debug = Debug('cypress:webpack') const debugStats = Debug('cypress:webpack:stats') -declare global { - // this indicates which commands should be acted upon by the - // cross-origin-callback-loader. its absence means the loader - // should not be utilized at all - // eslint-disable-next-line no-var - var __cypressCallbackReplacementCommands: string[] | undefined -} - type FilePath = string interface BundleObject { promise: Bluebird @@ -163,8 +153,6 @@ interface WebpackPreprocessor extends WebpackPreprocessorFn { const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): FilePreprocessor => { debug('user options: %o', options) - let crossOriginCallbackLoaderAdded = false - // we return function that accepts the arguments provided by // the event 'file:preprocessor' // @@ -241,25 +229,6 @@ const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): F }) .value() as any - const callbackReplacementCommands = global.__cypressCallbackReplacementCommands - - if (!crossOriginCallbackLoaderAdded && !!callbackReplacementCommands) { - // webpack runs loaders last-to-first and we want ours to run last - // so that it's working with plain javascript - webpackOptions.module.rules.unshift({ - test: /\.(js|ts|jsx|tsx)$/, - exclude: /node_modules/, - use: [{ - loader: require.resolve('@cypress/webpack-preprocessor/dist/lib/cross-origin-callback-loader.js'), - options: { - commands: callbackReplacementCommands, - }, - }], - }) - - crossOriginCallbackLoaderAdded = true - } - debug('webpackOptions: %o', webpackOptions) debug('watchOptions: %o', watchOptions) if (options.typescript) debug('typescript: %s', options.typescript) @@ -327,62 +296,12 @@ const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): F } debug('finished bundling', outputPath) + if (debugStats.enabled) { /* eslint-disable-next-line no-console */ console.error(stats.toString({ colors: true })) } - const resolveAllBundles = () => { - bundles[filePath].deferreds.forEach((deferred) => { - // resolve with the outputPath so Cypress knows where to serve - // the file from - deferred.resolve(outputPath) - }) - - bundles[filePath].deferreds.length = 0 - } - - // the cross-origin-callback-loader extracts any cross-origin callback - // functions that require dependencies and stores their sources - // in the CrossOriginCallbackStore. it saves the callbacks per source - // files, since that's the context it has. here we need to unfurl - // what dependencies the input source file has so we can know which - // files stored in the CrossOriginCallbackStore to compile - const handleCrossOriginCallbackFiles = () => { - // get the source file and any of its dependencies - const sourceFiles = jsonStats.modules - .filter((module) => { - // entries have duplicate modules whose ids are numbers - return _.isString(module.id) - }) - .map((module) => { - // module id is the path relative to the cwd, - // e.g. ./cypress/support/e2e.js, but we need it absolute - return path.join(process.cwd(), module.id as string) - }) - - if (!crossOriginCallbackStore.hasFilesFor(sourceFiles)) { - debug('no cross-origin callback files') - - return resolveAllBundles() - } - - compileCrossOriginCallbackFiles(crossOriginCallbackStore.getFilesFor(sourceFiles), { - originalFilePath: filePath, - webpackOptions, - }) - .then(() => { - debug('resolve all after handling cross-origin callback files') - resolveAllBundles() - }) - .catch((err) => { - rejectWithErr(err) - }) - .finally(() => { - crossOriginCallbackStore.reset(filePath) - }) - } - // seems to be a race condition where changing file before next tick // does not cause build to rerun Bluebird.delay(0).then(() => { @@ -390,11 +309,13 @@ const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): F return } - if (!callbackReplacementCommands) { - return resolveAllBundles() - } + bundles[filePath].deferreds.forEach((deferred) => { + // resolve with the outputPath so Cypress knows where to serve + // the file from + deferred.resolve(outputPath) + }) - handleCrossOriginCallbackFiles() + bundles[filePath].deferreds.length = 0 }) } @@ -454,17 +375,6 @@ const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): F bundler.close(cb) } } - - // clean up temp dir where cross-origin callback files are output - const tmpdir = utils.tmpdir(utils.hash(filePath)) - - debug('remove temp directory:', tmpdir) - - utils.rmdir(tmpdir).catch((err) => { - // not the end of the world if removing the tmpdir fails, but we - // don't want it to crash the whole process by going uncaught - debug('failed removing temp directory: %s', err.stack) - }) }) // return the promise, which will resolve with the outputPath or reject diff --git a/npm/webpack-preprocessor/lib/cross-origin-callback-compile.ts b/npm/webpack-preprocessor/lib/cross-origin-callback-compile.ts deleted file mode 100644 index d66606c5ca5b..000000000000 --- a/npm/webpack-preprocessor/lib/cross-origin-callback-compile.ts +++ /dev/null @@ -1,104 +0,0 @@ -import _ from 'lodash' -import Debug from 'debug' -import * as path from 'path' -import webpack from 'webpack' -import { CrossOriginCallbackStoreFile } from './cross-origin-callback-store' - -const VirtualModulesPlugin = require('webpack-virtual-modules') - -const debug = Debug('cypress:webpack') - -interface Entry { - [key: string]: string -} - -interface VirtualConfig { - [key: string]: string -} - -interface EntryConfig { - entry: Entry - virtualConfig: VirtualConfig -} - -// takes the files stored by the cross-origin-callback-loader and turns -// them into config we can pass to webpack to compile all the files. the -// virtual config allows us to just use the source we have in memory without -// needing to write it to file -const getConfig = ({ files, originalFilePath }): EntryConfig => { - const dir = path.dirname(originalFilePath) - - return files.reduce((memo, file) => { - const { inputFileName, source } = file - const inputPath = path.join(dir, inputFileName) - - memo.entry[inputFileName] = inputPath - memo.virtualConfig[inputPath] = source - - return memo - }, { entry: {}, virtualConfig: {} }) -} - -interface ConfigProperties { - webpackOptions: webpack.Configuration - entry: Entry - virtualConfig: VirtualConfig - outputDir: string -} - -const getWebpackOptions = ({ webpackOptions, entry, virtualConfig, outputDir }: ConfigProperties): webpack.Configuration => { - const modifiedWebpackOptions = _.extend({}, webpackOptions, { - entry, - output: { - path: outputDir, - }, - }) - const plugins = modifiedWebpackOptions.plugins || [] - - modifiedWebpackOptions.plugins = plugins.concat( - new VirtualModulesPlugin(virtualConfig), - ) - - return modifiedWebpackOptions -} - -interface CompileOptions { - originalFilePath: string - webpackOptions: webpack.Configuration -} - -// the cross-origin-callback-loader extracts any cy.origin() callback functions -// that includes dependencies and stores their sources in the -// CrossOriginCallbackStore. this sends those sources through webpack again -// to process any dependencies and create bundles for each callback function -export const compileCrossOriginCallbackFiles = (files: CrossOriginCallbackStoreFile[], options: CompileOptions): Promise => { - debug('compile cross-origin callback files: %o', files) - - const { originalFilePath, webpackOptions } = options - const outputDir = path.dirname(files[0].outputFilePath) - const { entry, virtualConfig } = getConfig({ files, originalFilePath }) - const modifiedWebpackOptions = getWebpackOptions({ - webpackOptions, - entry, - virtualConfig, - outputDir, - }) - - return new Promise((resolve, reject) => { - const compiler = webpack(modifiedWebpackOptions) - - const handle = (err: Error) => { - if (err) { - debug('errored compiling cross-origin callback files with: %s', err.stack) - - return reject(err) - } - - debug('successfully compiled cross-origin callback files') - - resolve() - } - - compiler.run(handle) - }) -} diff --git a/npm/webpack-preprocessor/lib/cross-origin-callback-loader.ts b/npm/webpack-preprocessor/lib/cross-origin-callback-loader.ts deleted file mode 100644 index 91d196b2a6ee..000000000000 --- a/npm/webpack-preprocessor/lib/cross-origin-callback-loader.ts +++ /dev/null @@ -1,180 +0,0 @@ -import _ from 'lodash' -import { parse } from '@babel/parser' -import { default as traverse } from '@babel/traverse' -import { default as generate } from '@babel/generator' -import { NodePath, types as t } from '@babel/core' -import * as loaderUtils from 'loader-utils' -import * as pathUtil from 'path' -import Debug from 'debug' - -import mergeSourceMaps from './merge-source-map' -import { crossOriginCallbackStore } from './cross-origin-callback-store' -import utils from './utils' - -const debug = Debug('cypress:webpack') - -// this loader makes supporting dependencies within cross-origin callbacks -// possible. if there are no dependencies (e.g. no requires/imports), it's a -// noop. otherwise: it does this by doing the following: -// - extracts the callbacks -// - the callbacks are kept in memory and then run back through webpack -// once the initial file compilation is complete -// - replaces the callbacks with objects -// - this object references the file the callback will be output to by -// its own compilation. this allows the runtime to get the file and -// run it in its origin's context. -export default function (source: string, map, meta, store = crossOriginCallbackStore) { - const { resourcePath } = this - const options = typeof this.getOptions === 'function' - ? this.getOptions() // webpack 5 - : loaderUtils.getOptions(this) // webpack 4 - const commands = (options.commands || []) as string[] - - let ast: t.File - - try { - // purposefully lenient in allowing syntax since the user can't configure - // this, but probably has their own webpack or target configured to - // handle it - ast = parse(source, { - allowImportExportEverywhere: true, - allowAwaitOutsideFunction: true, - allowSuperOutsideMethod: true, - allowUndeclaredExports: true, - sourceType: 'unambiguous', - sourceFilename: resourcePath, - }) - } catch (err) { - // it's unlikely there will be a parsing error, since that should have - // already been caught by a previous loader, but if there is and it isn't - // possible to get the AST, there's nothing we can do, so just callback - // with the original source - debug('parsing error for file (%s): %s', resourcePath, err.stack) - - this.callback(null, source, map) - - return - } - - let hasDependencies = false - - traverse(ast, { - CallExpression (path) { - const callee = path.get('callee') as NodePath - - if (!callee.isMemberExpression()) return - - // bail if we're not inside a supported command - if (!commands.includes((callee.node.property as t.Identifier).name)) { - return - } - - const lastArg = _.last(path.get('arguments')) - - // the user could try an invalid signature where the last argument is - // not a function. in this case, we'll return the unmodified code and - // it will be a runtime validation error - if ( - !lastArg || ( - !lastArg.isArrowFunctionExpression() - && !lastArg.isFunctionExpression() - ) - ) { - return - } - - // determine if there are any requires/imports within the callback - lastArg.traverse({ - CallExpression (path) { - if ( - // e.g. const dep = require('../path/to/dep') - // @ts-ignore - path.node.callee.name === 'require' - // e.g. const dep = await import('../path/to/dep') - || path.node.callee.type as string === 'Import' - ) { - hasDependencies = true - } - }, - }, this) - - if (!hasDependencies) return - - // generate the extracted callback function from an AST into a string - // and assign it to a variable. we wrap this generated code when we - // eval the code, so the variable is set up and then invoked. it ends up - // like this: - // - // let __cypressCrossOriginCallback 】added at runtime - // (function () { ┓ added by webpack - // // ... webpack stuff stuff ... ┛ - // __cypressCrossOriginCallback = (args) => { ┓ extracted callback - // const dep = require('../path/to/dep') ┃ - // // ... test stuff ... ┃ - // } ┛ - // // ... webpack stuff stuff ... ┓ added by webpack - // }()) ┛ - // __cypressCrossOriginCallback(args) 】added at runtime - // - const callbackName = '__cypressCrossOriginCallback' - const generatedCode = generate(lastArg.node, {}).code - const modifiedGeneratedCode = `${callbackName} = ${generatedCode}` - // the tmpdir path uses a hashed version of the source file path - // so that it can be cleaned up without removing other in-use tmpdirs - // (notably the support file persists between specs, so its cross-origin - // callback output files need to persist as well) - const sourcePathHash = utils.hash(resourcePath) - const outputDir = utils.tmpdir(sourcePathHash) - // use a hash of the contents in file name to ensure it's unique. if - // the contents happen to be the same, it's okay if they share a file - const codeHash = utils.hash(modifiedGeneratedCode) - const inputFileName = `cross-origin-cb-${codeHash}` - const outputFilePath = `${pathUtil.join(outputDir, inputFileName)}.js` - - store.addFile(resourcePath, { - inputFileName, - outputFilePath, - source: modifiedGeneratedCode, - }) - - // replaces callback function with object referencing the extracted - // function's callback name and output file path in the form - // { callbackName: , outputFilePath: } - // this is used at runtime when the command is run to execute the bundle - // generated for the extracted callback function - lastArg.replaceWith( - t.objectExpression([ - t.objectProperty( - t.stringLiteral('callbackName'), - t.stringLiteral(callbackName), - ), - t.objectProperty( - t.stringLiteral('outputFilePath'), - t.stringLiteral(outputFilePath), - ), - ]), - ) - }, - }) - - // if no requires/imports were found, callback with the original source/map - if (!hasDependencies) { - debug('callback with original source') - this.callback(null, source, map) - - return - } - - // if we found requires/imports, re-generate the code from the AST - const result = generate(ast, { sourceMaps: true }, { - [resourcePath]: source, - }) - // result.map needs to be merged with the original map for it to include - // the changes made in this loader. we can't return result.map because it - // is based off the intermediary code provided to the loader and not the - // original source code (which could be TypeScript or JSX or something) - const newMap = mergeSourceMaps(map, result.map) - - debug('callback with modified source') - this.callback(null, result.code, newMap) -} diff --git a/npm/webpack-preprocessor/lib/cross-origin-callback-store.ts b/npm/webpack-preprocessor/lib/cross-origin-callback-store.ts deleted file mode 100644 index 1167f26ab30a..000000000000 --- a/npm/webpack-preprocessor/lib/cross-origin-callback-store.ts +++ /dev/null @@ -1,29 +0,0 @@ -export interface CrossOriginCallbackStoreFile { - inputFileName: string - outputFilePath: string - source: string -} - -export class CrossOriginCallbackStore { - private files: { [key: string]: CrossOriginCallbackStoreFile[] } = {} - - addFile (sourceFilePath: string, file: CrossOriginCallbackStoreFile) { - this.files[sourceFilePath] = (this.files[sourceFilePath] || []).concat(file) - } - - hasFilesFor (sourceFiles: string[]) { - return !!this.getFilesFor(sourceFiles)?.length - } - - getFilesFor (sourceFiles: string[]) { - return Object.keys(this.files).reduce((files, sourceFilePath) => { - return sourceFiles.includes(sourceFilePath) ? files.concat(this.files[sourceFilePath]) : files - }, [] as CrossOriginCallbackStoreFile[]) - } - - reset (sourceFilePath: string) { - this.files[sourceFilePath] = [] - } -} - -export const crossOriginCallbackStore = new CrossOriginCallbackStore() diff --git a/npm/webpack-preprocessor/lib/merge-source-map.ts b/npm/webpack-preprocessor/lib/merge-source-map.ts deleted file mode 100644 index 4e2a6b175c3f..000000000000 --- a/npm/webpack-preprocessor/lib/merge-source-map.ts +++ /dev/null @@ -1,95 +0,0 @@ -// https://github.com/keik/merge-source-map -// -// The MIT License (MIT) - -// Copyright (c) keik - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -import sourceMap from 'source-map' - -const SourceMapConsumer = sourceMap.SourceMapConsumer -const SourceMapGenerator = sourceMap.SourceMapGenerator - -/** - * Merge old source map and new source map and return merged. - * If old or new source map value is falsy, return another one as it is. - * - * @param {object|string} [oldMap] old source map object - * @param {object|string} [newmap] new source map object - * @return {object|undefined} merged source map object, or undefined when both old and new source map are undefined - */ -export default function merge (oldMap, newMap) { - if (!oldMap) return newMap - - if (!newMap) return oldMap - - const oldMapConsumer = new SourceMapConsumer(oldMap) - const newMapConsumer = new SourceMapConsumer(newMap) - const mergedMapGenerator = new SourceMapGenerator() - - // iterate on new map and overwrite original position of new map with one of old map - newMapConsumer.eachMapping(function (m) { - // pass when `originalLine` is null. - // It occurs in case that the node does not have origin in original code. - if (m.originalLine == null) return - - const origPosInOldMap = oldMapConsumer.originalPositionFor({ - line: m.originalLine, - column: m.originalColumn, - }) - - if (origPosInOldMap.source == null) return - - mergedMapGenerator.addMapping({ - original: { - line: origPosInOldMap.line, - column: origPosInOldMap.column, - }, - generated: { - line: m.generatedLine, - column: m.generatedColumn, - }, - source: origPosInOldMap.source, - name: origPosInOldMap.name, - }) - }) - - const consumers = [newMapConsumer, oldMapConsumer] - - consumers.forEach(function (consumer) { - // @ts-ignore - consumer.sources.forEach(function (sourceFile) { - // @ts-ignore - mergedMapGenerator._sources.add(sourceFile) - const sourceContent = consumer.sourceContentFor(sourceFile) - - if (sourceContent != null) { - mergedMapGenerator.setSourceContent(sourceFile, sourceContent) - } - }) - }) - - // @ts-ignore - mergedMapGenerator._sourceRoot = oldMap.sourceRoot - // @ts-ignore - mergedMapGenerator._file = oldMap.file - - return JSON.parse(mergedMapGenerator.toString()) -} diff --git a/npm/webpack-preprocessor/lib/utils.ts b/npm/webpack-preprocessor/lib/utils.ts index e51a2e723d06..9257c0194b01 100644 --- a/npm/webpack-preprocessor/lib/utils.ts +++ b/npm/webpack-preprocessor/lib/utils.ts @@ -1,9 +1,4 @@ -import _ from 'lodash' -import * as os from 'os' -import path from 'path' -import md5 from 'md5' import Bluebird from 'bluebird' -import fs from 'fs-extra' function createDeferred () { let resolve: (thenableOrResult?: T | PromiseLike | undefined) => void @@ -21,23 +16,6 @@ function createDeferred () { } } -function hash (contents: string) { - return md5(contents) -} - -function rmdir (dirPath: string) { - return fs.emptyDir(dirPath) -} - -function tmpdir (dirname?: string) { - const pathParts = _.compact([os.tmpdir(), 'cypress', 'webpack-preprocessor', dirname]) - - return path.join(...pathParts) -} - export default { createDeferred, - hash, - rmdir, - tmpdir, } diff --git a/npm/webpack-preprocessor/package.json b/npm/webpack-preprocessor/package.json index f08c70d242da..1f4888a7db43 100644 --- a/npm/webpack-preprocessor/package.json +++ b/npm/webpack-preprocessor/package.json @@ -21,20 +21,12 @@ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, ." }, "dependencies": { - "@babel/core": "^7.0.1", - "@babel/generator": "^7.17.9", - "@babel/parser": "^7.13.0", - "@babel/traverse": "^7.17.9", "bluebird": "3.7.1", "debug": "^4.3.4", - "fs-extra": "^10.1.0", - "loader-utils": "^2.0.0", - "lodash": "^4.17.20", - "md5": "2.3.0", - "source-map": "^0.6.1", - "webpack-virtual-modules": "^0.4.4" + "lodash": "^4.17.20" }, "devDependencies": { + "@babel/core": "^7.0.1", "@babel/preset-env": "^7.0.0", "@types/mocha": "9.0.0", "@types/webpack": "^4.41.12", @@ -48,6 +40,7 @@ "deps-ok": "1.2.1", "fast-glob": "3.1.1", "find-webpack": "1.5.0", + "fs-extra": "^10.1.0", "mocha": "^7.1.0", "mockery": "2.1.0", "proxyquire": "2.1.3", 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 deleted file mode 100644 index 06a334b48223..000000000000 --- a/npm/webpack-preprocessor/test/unit/cross-origin-callback-loader.spec.ts +++ /dev/null @@ -1,301 +0,0 @@ -'use strict' - -import chai, { expect } from 'chai' -import { stripIndent } from 'common-tags' -import * as sinon from 'sinon' -import sinonChai from 'sinon-chai' -import utils from '../../lib/utils' -import { CrossOriginCallbackStore } from '../../lib/cross-origin-callback-store' - -chai.use(sinonChai) - -import loader from '../../lib/cross-origin-callback-loader' - -const expectAddFileSource = (store) => { - return expect(store.addFile.lastCall.args[1].source) -} - -describe('./lib/cross-origin-callback-loader', () => { - const callLoader = (source, commands = ['origin']) => { - const store = new CrossOriginCallbackStore() - const callback = sinon.spy() - const context = { - callback, - resourcePath: '/path/to/file', - query: { commands }, - } - const originalMap = { - sources: [], - sourcesContent: [], - version: 3, - mappings: [], - } - - store.addFile = sinon.stub() - loader.call(context, source, originalMap, null, store) - - return { - store, - originalMap, - resultingSource: callback.lastCall.args[1], - resultingMap: callback.lastCall.args[2], - } - } - - beforeEach(() => { - sinon.restore() - }) - - describe('noop scenarios', () => { - it('is a noop when parsing source fails', () => { - const { originalMap, resultingSource, resultingMap, store } = callLoader(undefined) - - expect(resultingSource).to.be.undefined - expect(resultingMap).to.be.equal(originalMap) - expect(store.addFile).not.to.be.called - }) - - it('is a noop when source does not contain cy.origin()', () => { - const source = `it('test', () => { - cy.get('h1') - })` - const { originalMap, resultingSource, resultingMap, store } = callLoader(source) - - expect(resultingSource).to.be.equal(source) - expect(resultingMap).to.be.equal(originalMap) - expect(store.addFile).not.to.be.called - }) - - it('is a noop when cy.origin() callback does not contain require() or import()', () => { - const source = `it('test', () => { - cy.origin('http://www.foobar.com:3500', () => {}) - })` - const { originalMap, resultingSource, resultingMap, store } = callLoader(source) - - expect(resultingSource).to.be.equal(source) - expect(resultingMap).to.be.equal(originalMap) - expect(store.addFile).not.to.be.called - }) - - it('is a noop when last argument to cy.origin() is not a callback', () => { - const source = `it('test', () => { - cy.origin('http://www.foobar.com:3500', {}) - })` - const { originalMap, resultingSource, resultingMap, store } = callLoader(source) - - expect(resultingSource).to.be.equal(source) - expect(resultingMap).to.be.equal(originalMap) - expect(store.addFile).not.to.be.called - }) - }) - - describe('replacement scenarios', () => { - beforeEach(() => { - sinon.stub(utils, 'hash').returns('abc123') - sinon.stub(utils, 'tmpdir').returns('/path/to/tmp') - }) - - it('replaces cy.origin() callback with an object when using require()', () => { - const source = stripIndent` - it('test', () => { - cy.origin('http://www.foobar.com:3500', () => { - require('../support/utils') - }) - })` - const { originalMap, resultingSource, resultingMap } = callLoader(source) - - expect(resultingSource).to.equal(stripIndent` - it('test', () => { - cy.origin('http://www.foobar.com:3500', { - "callbackName": "__cypressCrossOriginCallback", - "outputFilePath": "/path/to/tmp/cross-origin-cb-abc123.js" - }); - });`) - - expect(resultingMap).to.exist - expect(resultingMap).not.to.equal(originalMap) - expect(resultingMap.sourcesContent[0]).to.equal(source) - }) - - it('replaces cy.origin() callback with an object when using import()', () => { - const source = stripIndent` - it('test', () => { - cy.origin('http://www.foobar.com:3500', async () => { - await import('../support/utils') - }) - })` - const { originalMap, resultingSource, resultingMap } = callLoader(source) - - expect(resultingSource).to.equal(stripIndent` - it('test', () => { - cy.origin('http://www.foobar.com:3500', { - "callbackName": "__cypressCrossOriginCallback", - "outputFilePath": "/path/to/tmp/cross-origin-cb-abc123.js" - }); - });`) - - expect(resultingMap).to.exist - expect(resultingMap).not.to.equal(originalMap) - expect(resultingMap.sourcesContent[0]).to.equal(source) - }) - - it('replaces cy.other() when specified in commands', () => { - const source = stripIndent` - it('test', () => { - cy.other('http://www.foobar.com:3500', () => { - require('../support/utils') - }) - })` - const { originalMap, resultingSource, resultingMap } = callLoader(source, ['other']) - - expect(resultingSource).to.equal(stripIndent` - it('test', () => { - cy.other('http://www.foobar.com:3500', { - "callbackName": "__cypressCrossOriginCallback", - "outputFilePath": "/path/to/tmp/cross-origin-cb-abc123.js" - }); - });`) - - expect(resultingMap).to.exist - expect(resultingMap).not.to.equal(originalMap) - expect(resultingMap.sourcesContent[0]).to.equal(source) - }) - - it('adds the file to the store, replacing require() with require()', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', () => { - require('../support/utils') - }) - })`, - ) - - expect(store.addFile).to.be.calledWithMatch('/path/to/file', { - inputFileName: 'cross-origin-cb-abc123', - outputFilePath: '/path/to/tmp/cross-origin-cb-abc123.js', - }) - }) - - // arrow expression is implicitly tested in other tests - it('works when callback is a function expression', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', function () { - require('../support/utils') - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = function () { - require('../support/utils'); - }`) - }) - - it('works when dep is not assigned to a variable', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', () => { - require('../support/utils') - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = () => { - require('../support/utils'); - }`) - }) - - it('works when dep is assigned to a variable', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', () => { - const utils = require('../support/utils') - utils.foo() - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = () => { - const utils = require('../support/utils'); - utils.foo(); - }`) - }) - - it('works with multiple require()s', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', () => { - require('../support/commands') - const utils = require('../support/utils') - const _ = require('lodash') - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = () => { - require('../support/commands'); - const utils = require('../support/utils'); - const _ = require('lodash'); - }`) - }) - - it('works when .origin() is chained off another command', () => { - const { store } = callLoader( - `it('test', () => { - cy - .wrap({}) - .origin('http://www.foobar.com:3500', () => { - require('../support/commands') - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = () => { - require('../support/commands'); - }`) - }) - - it('works when result of require() is invoked', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', () => { - const someVar = 'someValue' - const result = require('./fn')(someVar) - expect(result).to.equal('mutated someVar') - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = () => { - const someVar = 'someValue'; - const result = require('./fn')(someVar); - expect(result).to.equal('mutated someVar'); - }`) - }) - - it('works when dependencies passed into called', () => { - const { store } = callLoader( - `it('test', () => { - cy.origin('http://www.foobar.com:3500', { args: { foo: 'foo'}}, ({ foo }) => { - const result = require('./fn')(foo) - expect(result).to.equal('mutated someVar') - }) - })`, - ) - - expectAddFileSource(store).to.equal(stripIndent` - __cypressCrossOriginCallback = ({ - foo - }) => { - const result = require('./fn')(foo); - expect(result).to.equal('mutated someVar'); - }`) - }) - }) -}) diff --git a/npm/webpack-preprocessor/test/unit/index.spec.js b/npm/webpack-preprocessor/test/unit/index.spec.js index b22f31002618..1b3e946f40d1 100644 --- a/npm/webpack-preprocessor/test/unit/index.spec.js +++ b/npm/webpack-preprocessor/test/unit/index.spec.js @@ -23,10 +23,7 @@ mockery.enable({ mockery.registerMock('webpack', webpack) const preprocessor = require('../../index') -const utils = require('../../lib/utils').default const typescriptOverrides = require('../../lib/typescript-overrides') -const crossOriginCallbackStore = require('../../lib/cross-origin-callback-store').crossOriginCallbackStore -const crossOriginCallbackCompile = require('../../lib/cross-origin-callback-compile') describe('webpack preprocessor', function () { beforeEach(function () { @@ -68,9 +65,6 @@ describe('webpack preprocessor', function () { onClose: sinon.stub(), } - sinon.stub(utils, 'rmdir').resolves() - sinon.stub(utils, 'tmpdir').returns('/path/to/tmp/dir') - this.run = (options, file = this.file) => { return preprocessor(options)(file) } @@ -167,79 +161,6 @@ describe('webpack preprocessor', function () { }) }) - describe('cross-origin callback compilation', function () { - beforeEach(function () { - global.__cypressCallbackReplacementCommands = ['origin'] - - this.files = [] - - sinon.stub(crossOriginCallbackStore, 'hasFilesFor').returns(true) - sinon.stub(crossOriginCallbackStore, 'getFilesFor').returns(this.files) - sinon.stub(crossOriginCallbackCompile, 'compileCrossOriginCallbackFiles').resolves() - sinon.stub(crossOriginCallbackStore, 'reset') - - this.statsApi = { - hasErrors: () => false, - toJson () { - return { warnings: [], errors: [], modules: [] } - }, - } - - this.compilerApi.run.yields(null, this.statsApi) - }) - - afterEach(function () { - global.__cypressCallbackReplacementCommands = undefined - }) - - it('adds cross-origin callback loader when flag is on', function () { - const options = { webpackOptions: { devtool: false, module: { rules: [] } } } - - return this.run(options).then(() => { - expect(options.webpackOptions.module.rules[0].use[0].loader).to.include('cross-origin-callback-loader') - }) - }) - - it('runs additional compilation for cross-origin callback files', function () { - return this.run().then(() => { - expect(crossOriginCallbackCompile.compileCrossOriginCallbackFiles).to.be.calledWith(this.files) - expect(crossOriginCallbackStore.reset).to.be.called - }) - }) - - it('rejects the main bundle promise if callback file compilation errors', function () { - const err = new Error('compilation failed') - - crossOriginCallbackCompile.compileCrossOriginCallbackFiles.rejects(err) - - return this.run() - .then(() => { - throw new Error('should not resolve') - }) - .catch((_err) => { - expect(_err).to.equal(err) - expect(crossOriginCallbackStore.reset).to.be.called - }) - }) - - it('does not compile files when no commands are specified', function () { - global.__cypressCallbackReplacementCommands = undefined - - return this.run().then(() => { - expect(crossOriginCallbackStore.hasFilesFor).not.to.be.called - expect(crossOriginCallbackCompile.compileCrossOriginCallbackFiles).not.to.be.called - }) - }) - - it('does not compile files there are no files', function () { - crossOriginCallbackStore.hasFilesFor.returns(false) - - return this.run().then(() => { - expect(crossOriginCallbackCompile.compileCrossOriginCallbackFiles).not.to.be.called - }) - }) - }) - describe('devtool', function () { beforeEach((() => { sinon.stub(typescriptOverrides, 'overrideSourceMaps') @@ -386,15 +307,6 @@ describe('webpack preprocessor', function () { }) }) - it('deletes temp dir when `close` is emitted', function () { - this.compilerApi.watch.yields(null, this.statsApi) - - return this.run().then(() => { - this.file.on.withArgs('close').yield() - expect(utils.rmdir).to.be.calledWith(utils.tmpdir()) - }) - }) - it('uses default webpack options when no user options', function () { return this.run().then(() => { expect(webpack.lastCall.args[0].module.rules[0].use).to.have.length(1) diff --git a/package.json b/package.json index 1c9ab667368b..605285f3023e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypress", - "version": "12.5.1", + "version": "12.6.0", "description": "Cypress is a next generation front end testing tool built for the modern web", "private": true, "scripts": { diff --git a/packages/app/cypress/e2e/debug.cy.ts b/packages/app/cypress/e2e/debug.cy.ts index b39c4ca19ddd..76fce07b3ac0 100644 --- a/packages/app/cypress/e2e/debug.cy.ts +++ b/packages/app/cypress/e2e/debug.cy.ts @@ -77,7 +77,7 @@ describe('App - Debug Page', () => { cy.findByTestId('debug-header-branch').contains('main') cy.findByTestId('debug-header-commitHash').contains('e9d176f') cy.findByTestId('debug-header-author').contains('Lachlan Miller') - cy.findByTestId('debug-header-createdAt').contains('01:18') + cy.findByTestId('debug-header-createdAt').contains('02h 00m 10s') }) cy.findByTestId('debug-passed').contains('Well Done!') @@ -148,7 +148,7 @@ describe('App - Debug Page', () => { cy.findByTestId('debug-header-branch').contains('main') cy.findByTestId('debug-header-commitHash').contains('commit1') cy.findByTestId('debug-header-author').contains('Lachlan Miller') - cy.findByTestId('debug-header-createdAt').contains('00:19') + cy.findByTestId('debug-header-createdAt').contains('00m 19s') }) cy.findByTestId('spec-contents').within(() => { diff --git a/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts b/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts index 5c3ee15c4c99..2edad8a786c0 100644 --- a/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts +++ b/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts @@ -74,7 +74,7 @@ reactVersions.forEach((reactVersion) => { }) verify('error on mount', { - line: 6, + line: 5, column: 33, uncaught: true, uncaughtMessage: 'mount error', @@ -86,8 +86,8 @@ reactVersions.forEach((reactVersion) => { }) verify('sync error', { - line: 11, - column: 34, + line: 12, + column: 19, uncaught: true, uncaughtMessage: 'sync error', message: [ @@ -101,8 +101,8 @@ reactVersions.forEach((reactVersion) => { }) verify('async error', { - line: 18, - column: 38, + line: 21, + column: 21, uncaught: true, uncaughtMessage: 'async error', message: [ @@ -116,7 +116,7 @@ reactVersions.forEach((reactVersion) => { }) verify('command failure', { - line: 43, + line: 47, column: 8, command: 'get', message: [ @@ -148,7 +148,7 @@ describe('Next.js', { }) verify('error on mount', { - line: 7, + line: 6, column: 33, uncaught: true, uncaughtMessage: 'mount error', @@ -160,8 +160,8 @@ describe('Next.js', { }) verify('sync error', { - line: 12, - column: 34, + line: 13, + column: 19, uncaught: true, uncaughtMessage: 'sync error', message: [ @@ -175,8 +175,8 @@ describe('Next.js', { }) verify('async error', { - line: 19, - column: 38, + line: 22, + column: 21, uncaught: true, uncaughtMessage: 'async error', message: [ @@ -189,7 +189,7 @@ describe('Next.js', { }) verify('command failure', { - line: 44, + line: 48, column: 8, command: 'get', message: [ @@ -338,8 +338,8 @@ describe('Nuxt', { 'Timed out retrying', 'element-that-does-not-exist', ], - codeFrameRegex: /Errors\.cy\.js:26/, - stackRegex: /Errors\.cy\.js:26/, + codeFrameRegex: /Errors\.cy\.js:25/, + stackRegex: /Errors\.cy\.js:25/, }) }) }) @@ -465,7 +465,7 @@ angularVersions.forEach((angularVersion) => { }) verify('command failure', { - line: 21, + line: 20, column: 8, command: 'get', message: [ diff --git a/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts b/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts index e48055f7e349..4c4190036b10 100644 --- a/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts +++ b/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts @@ -42,13 +42,9 @@ for (const { projectName, test } of PROJECTS) { cy.contains(`${test}`).click() cy.waitForSpecToFinish(undefined) cy.get('.command.command-name-mount > .command-wrapper').click().then(() => { - if (`${projectName}` === 'angular-14') { - cy.get('iframe.aut-iframe').its('0.contentDocument.body').children().should('have.length.at.least', 2) - } else { - cy.get('iframe.aut-iframe').its('0.contentDocument.body').then(cy.wrap).within(() => { - cy.get('[data-cy-root]').children().should('have.length.at.least', 1) - }) - } + cy.get('iframe.aut-iframe').its('0.contentDocument.body').then(cy.wrap).within(() => { + cy.get('[data-cy-root]').children().should('have.length.at.least', 1) + }) }) } }) diff --git a/packages/app/cypress/fixtures/debug-Failing/gql-Debug.json b/packages/app/cypress/fixtures/debug-Failing/gql-Debug.json index b3af1afc3f90..c522ac0f0f98 100644 --- a/packages/app/cypress/fixtures/debug-Failing/gql-Debug.json +++ b/packages/app/cypress/fixtures/debug-Failing/gql-Debug.json @@ -14,6 +14,7 @@ "commitInfo": { "sha": "commit1", "authorName": "Lachlan Miller", + "authorEmail": "hello@cypress.io", "summary": "chore: testing cypress", "branch": "main", "__typename": "CloudRunCommitInfo" diff --git a/packages/app/cypress/fixtures/debug-Passing/gql-Debug.json b/packages/app/cypress/fixtures/debug-Passing/gql-Debug.json index 770ddfb7f052..82ce76f8c171 100644 --- a/packages/app/cypress/fixtures/debug-Passing/gql-Debug.json +++ b/packages/app/cypress/fixtures/debug-Passing/gql-Debug.json @@ -10,10 +10,11 @@ "runNumber": 2, "createdAt": "2023-01-30T08:10:59.720Z", "status": "PASSED", - "totalDuration": 78898, + "totalDuration": 7210000, "commitInfo": { "sha": "e9d176f0c00c0428c9945577aec37cb6d48c5a26", "authorName": "Lachlan Miller", + "authorEmail": "asdf", "summary": "update projectId", "branch": "main", "__typename": "CloudRunCommitInfo" diff --git a/packages/app/src/debug/DebugArtifactLink.cy.tsx b/packages/app/src/debug/DebugArtifactLink.cy.tsx index 919abc703d88..196da01d36ce 100644 --- a/packages/app/src/debug/DebugArtifactLink.cy.tsx +++ b/packages/app/src/debug/DebugArtifactLink.cy.tsx @@ -11,7 +11,7 @@ describe('', () => { it('mounts correctly, provides expected tooltip content, and emits correct event', () => { artifactMapping.forEach((artifact) => { cy.mount(() => ( - + )) cy.findByTestId(`artifact-for-${artifact.icon}`).should('have.length', 1) diff --git a/packages/app/src/debug/DebugArtifactLink.vue b/packages/app/src/debug/DebugArtifactLink.vue index 635705840128..b1fa3cc31160 100644 --- a/packages/app/src/debug/DebugArtifactLink.vue +++ b/packages/app/src/debug/DebugArtifactLink.vue @@ -2,9 +2,10 @@ - - - \ No newline at end of file diff --git a/npm/xpath/cypress/e2e/spec.cy.js b/npm/xpath/cypress/e2e/spec.cy.js deleted file mode 100644 index c88881f93a80..000000000000 --- a/npm/xpath/cypress/e2e/spec.cy.js +++ /dev/null @@ -1,183 +0,0 @@ -/// -/// - -describe('cypress-xpath', () => { - it('adds xpath command', () => { - expect(cy).property('xpath').to.be.a('function') - }) - - context('elements', () => { - beforeEach(() => { - cy.visit('cypress/e2e/index.html') - }) - - it('finds h1', () => { - cy.xpath('//h1').should('have.length', 1) - }) - - it('returns jQuery wrapped elements', () => { - cy.xpath('//h1').then((el$) => { - expect(el$).to.have.property('jquery') - }) - }) - - it('returns primitives as is', () => { - cy.xpath('string(//h1)').then((el$) => { - expect(el$).to.not.have.property('jquery') - }) - }) - - it('provides jQuery wrapped elements to assertions', () => { - cy.xpath('//h1').should((el$) => { - expect(el$).to.have.property('jquery') - }) - }) - - it('gets h1 text', () => { - cy.xpath('//h1/text()') - .its('0.textContent') - .should('equal', 'cypress-xpath') - }) - - it('retries until element is inserted', () => { - // the element will be inserted after 1 second - cy.xpath('string(//*[@id="inserted"])').should('equal', 'inserted text') - }) - - describe('chaining', () => { - it('finds h1 within main', () => { - // first assert that h1 doesn't exist as a child of the implicit document subject - cy.xpath('./h1').should('not.exist') - - cy.xpath('//main').xpath('./h1').should('exist') - }) - - it('finds body outside of main when succumbing to // trap', () => { - // first assert that body doesn't actually exist within main - cy.xpath('//main').xpath('.//body').should('not.exist') - - cy.xpath('//main').xpath('//body').should('exist') - }) - - it('finds h1 within document', () => { - cy.document().xpath('//h1').should('exist') - }) - - it('throws when subject is more than a single element', (done) => { - cy.on('fail', (err) => { - expect(err.message).to.eq( - 'xpath() can only be called on a single element. Your subject contained 2 elements.', - ) - - done() - }) - - cy.get('main, div').xpath('foo') - }) - }) - - describe('within()', () => { - it('finds h1 within within-subject', () => { - // first assert that h1 doesn't exist as a child of the implicit document subject - cy.xpath('./h1').should('not.exist') - - cy.xpath('//main').within(() => { - cy.xpath('./h1').should('exist') - }) - }) - - it('finds body outside of within-subject when succumbing to // trap', () => { - // first assert that body doesn't actually exist within main - cy.xpath('//main').within(() => { - cy.xpath('.//body').should('not.exist') - }) - - cy.xpath('//main').within(() => { - cy.xpath('//body').should('exist') - }) - }) - }) - - describe('primitives', () => { - it('counts h1 elements', () => { - cy.xpath('count(//h1)').should('equal', 1) - }) - - it('returns h1 text content', () => { - cy.xpath('string(//h1)').should('equal', 'cypress-xpath') - }) - - it('returns boolean', () => { - cy.xpath('boolean(//h1)').should('be.true') - cy.xpath('boolean(//h2)').should('be.false') - }) - }) - - describe('typing', () => { - it('works on text input', () => { - cy.xpath('//*[@id="name"]').type('World') - cy.contains('span#greeting', 'Hello, World') - }) - }) - - describe('clicking', () => { - it('on button', () => { - // this button invokes window.alert when clicked - const alert = cy.stub() - - cy.on('window:alert', alert) - cy.xpath('//*[@id="first-button"]') - .click() - .then(() => { - expect(alert).to.have.been.calledOnce - }) - }) - }) - }) - - context('logging', () => { - beforeEach(() => { - cy.visit('cypress/e2e/index.html') - }) - - it('should log by default', () => { - cy.spy(Cypress, 'log').log(false) - - cy.xpath('//h1').then(() => { - expect(Cypress.log).to.be.calledWithMatch({ name: 'xpath' }) - }) - }) - - it('logs the selector when not found', (done) => { - cy.xpath('//h1') // does exist - cy.on('fail', (e) => { - const isExpectedErrorMessage = (message) => { - return message.includes('Timed out retrying') && - message.includes( - 'Expected to find element: `//h2`, but never found it.', - ) - } - - if (!isExpectedErrorMessage(e.message)) { - console.error('Cypress test failed with an unexpected error message') - console.error(e) - - return done(e) - } - - // no errors, the error message for not found selector is correct - done() - }) - - cy.xpath('//h2', { timeout: 100 }) // does not exist - }) - - it('should not log when provided log: false', () => { - cy.spy(Cypress, 'log').log(false) - - cy.xpath('//h1', { log: false }).then(() => { - expect(Cypress.log).to.not.be.calledWithMatch({ name: 'xpath' }) - }) - }) - }) -}) diff --git a/npm/xpath/cypress/fixtures/example.json b/npm/xpath/cypress/fixtures/example.json deleted file mode 100644 index da18d9352a17..000000000000 --- a/npm/xpath/cypress/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} \ No newline at end of file diff --git a/npm/xpath/cypress/support/e2e.js b/npm/xpath/cypress/support/e2e.js deleted file mode 100644 index 10ea61f87d67..000000000000 --- a/npm/xpath/cypress/support/e2e.js +++ /dev/null @@ -1,16 +0,0 @@ -// *********************************************************** -// This example support/index.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 '../../src' diff --git a/npm/xpath/images/cypress-xpath-reference.gif b/npm/xpath/images/cypress-xpath-reference.gif deleted file mode 100644 index 97ebfa8f41d1d67889243b8fbf78ccf37468a3cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707120 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

h&cfmOt&k4?F+)wH8* zyQSkQR;6>2A6T2NTkn?65wz6ercu|UO>4ZC%ckN);n$5i!`CejEAmBN*=VMu`Nqr2 z;Ahw0;V7l{8VA^)?llob6LYhbV=`&wiUlR!s=1D}i?U~ykdCX`|<9AXlo1 z>s6E=M5!>j;vw8{hb10nAV`sNlZ-FJT<1l$qBDF^di{ynLew_1Vsmm!vi-BqpOaNe z0Hy37M^5&RCUmK898c6m6~r%S4NX_g*zH$%k;leGTSNy zS=j8wrN?OYR{x8Uy)0}de$61Y&?>aP%^dvNA#iL4KhX2<&{!W}A6K}Xe{G<2xn#Dc zwoFbzWC?CGdJ<1<;5?>XdqyRok?ynGl=wGdY0Uin+}WR5D#?#D>>B4e5629LWX|_m zzj&Yj>SVB=No&`m4V>LH)5=k)tM7-k1P+rY%kIruU8``DW=4d93|qz(dj<%f7MreG zGX^Cta;H;ZZbN>j>VHm4EqG%MTZn=`2g*z}H{L0}fOX=8lSmWAB9I4PF!$fy3!=|7 zuH+$-D3tnOxFt1GBx6!BxtI~6>|p4w+4*vMwa(QCvY(^nIxhPbAeybLl9-HzhFFJne0xffjL!{)5$TuKwVw;o;-b z!A_E!!fVztaYN$~>-@tkJd)QuCM&U0nNF!OsX}_JB&EGmU+#yAk=C4GqEYcXz9BT7 z#+=jpTbxu}6Dw4*u1v|d<{2OUScz4xzhn4JT3Gzg3WfaZCxwp!%DnpOhn~B$nb_nX z6>ghVsedurk`Xr?q z#D>KOmj&H`-?jEhn8}+XHw7LJ+P&a4f{`$QU^>t6WN5Ik0w69E%u z4gql`-O95=Pj|X?O23OUuXpBH{M_L<$X*1XxDiDzoaZUbcdd)Kjy{C`K%n^l;bOJ9 zsZ#R(y=tm9f9r9_e#9S!VvI1-6S@$Ha|P_^=ZFxwl<@3dcFMSCi(|A;rX;$XPdbU_ z4Svz=3`XGoQfoy(W<=9@a zRs@vwl-|fxZB$>O4?86Y6n#>=0MJCFMe`RkMnxznwyopVA-RlO3evBd!j9MYXpW!7 zJs(}?lU3!*BB2yq{pk>vYwdD07Fy#1#-b-wF3Xd#+PytlQ~yp!?8X(G9|^@NPtJY% z;pl@kZcTbbDq~7!oRuGp5->B*<4ZnzmAz%Qr5^hSiuk5?pt%|=+`^=wN=>gB(PY0J zF9OwOqSEM1Oqpt%9ZySXEl2F$Q=iB1>+BB6Zj*S1v)uKzf~PZh$WqT}B&NdxPHIBdEjd5W7E`T5$bULt@tn^yMbU}VAfDdi0J3&P zPANWX>`o=hbBL zVrTH?>WR?PF!QP_mb>6Pjmu0C89&VKxscleQ;LcssLd|cZoG^zOMIggV+i&bn=!5d3*80=w|oy@8&zQf?QcJbpzFGGaBE8pVpi-?M8CKTNPoKKOeZUw+!rYhJVHi zBv(^un*7Xsv4Q$EMB-bQEct@6MDA|-#qtnSm!p)Fl{GTKcDXT?~n9L zTb(SL^Myse-&^oVav|Ml>E-|a;uw5>^0K4?A&vm4Z9_%O#Kop;c5PPeym`#STz~PE zQ+BnJ+A9&j;9#!Hf1wggfL#1u8hS-D5JbHK430_bGpSvmfIz^bHdn_A)a!SrZ`H10GYd7OlDJTYjEOVaFTiloh?x09Wcgu zUV+W-WlCJqtX*=nVAKVUS{Fydx(c~kZH#*5D3c|IF1AaW3r^V%=D1s(R9_6h#?jki zDD{bVS#QU@luxwDO*!jK4R8_|c8!09qsfs2Q(A)h+;l_TBW8%HkgsVbe)Kt$WRwEw z*7bviILSF(Ew{nzxlIE4oav}pk9XF&ZEaZYPuI$u}D5SS(BGsA^|$SdZ=B)gX- z#0>b8R%gasZ%1!#3oANI=jVmuhEidbCUUo=cZeCt~S6<=Q zyrO@3#a#KNYWd}N^D9I0tMl?}yYlP5<~RJyZ{#XyRx4<|ThJa-(3w}z-Br;0wV>}` z0gkJ%U#)Q9ZsA}^Au+FTq^ofBYvK66!bz^z(`v70@4lW3c|D)^dZFv}(%0AD{=Ht| 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�pxBMwywzP)> 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

{w*`z^ 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

VdiW+`52t%}vcnqWm$!pzzkP;gtDJT~ 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�VafMnIOJDeC%sUIdc9fL^Yig)%94pdMR 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 - -declare namespace Cypress { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - interface Chainable { - /** - * Get one or more DOM elements by an XPath selector. - * **Note:** you can test XPath expressions from DevTools console using $x(...) function, for example $x('//div') to find all divs. - * @see https://github.com/cypress-io/cypress-xpath - * @example - * cy.xpath(`//ul[@class="todo-list"]//li`) - * .should('have.length', 3) - */ - xpath(selector: string, options?: Partial): Chainable> - } -} diff --git a/npm/xpath/src/index.js b/npm/xpath/src/index.js deleted file mode 100644 index 62001bebf9a7..000000000000 --- a/npm/xpath/src/index.js +++ /dev/null @@ -1,165 +0,0 @@ -/* eslint-disable no-redeclare */ -/// - -/** - * Adds XPath support to Cypress using a custom command. - * - * @see https://devhints.io/xpath - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_using_XPath_in_JavaScript - * @example - ```js - it('finds list items', () => { - cy.xpath('//ul[@class="todo-list"]//li') - .should('have.length', 3) - }) - ``` - */ -const xpath = (subject, selector, options = {}) => { - /* global XPathResult */ - const isNumber = (xpathResult) => { - return xpathResult.resultType === XPathResult.NUMBER_TYPE - } - const numberResult = (xpathResult) => xpathResult.numberValue - - const isString = (xpathResult) => { - return xpathResult.resultType === XPathResult.STRING_TYPE - } - const stringResult = (xpathResult) => xpathResult.stringValue - - const isBoolean = (xpathResult) => { - return xpathResult.resultType === XPathResult.BOOLEAN_TYPE - } - const booleanResult = (xpathResult) => xpathResult.booleanValue - - const isPrimitive = (x) => { - return Cypress._.isNumber(x) || Cypress._.isString(x) || Cypress._.isBoolean(x) - } - - // options to log later - const log = { - name: 'xpath', - message: selector, - } - - if (Cypress.dom.isElement(subject) && subject.length > 1) { - throw new Error( - `xpath() can only be called on a single element. Your subject contained ${ - subject.length - } elements.`, - ) - } - - const getValue = () => { - let nodes = [] - let contextNode - let withinSubject = cy.state('withinSubject') - - if (Cypress.dom.isElement(subject)) { - contextNode = subject[0] - } else if (Cypress.dom.isDocument(subject)) { - contextNode = subject - } else if (withinSubject) { - contextNode = withinSubject[0] - } else { - contextNode = cy.state('window').document - } - - let iterator = (contextNode.ownerDocument || contextNode).evaluate( - selector, - contextNode, - ) - - if (isNumber(iterator)) { - const result = numberResult(iterator) - - log.consoleProps = () => { - return { - XPath: selector, - type: 'number', - result, - } - } - - return result - } - - if (isString(iterator)) { - const result = stringResult(iterator) - - log.consoleProps = () => { - return { - XPath: selector, - type: 'string', - result, - } - } - - return result - } - - if (isBoolean(iterator)) { - const result = booleanResult(iterator) - - log.consoleProps = () => { - return { - XPath: selector, - type: 'boolean', - result, - } - } - - return result - } - - try { - let node = iterator.iterateNext() - - while (node) { - nodes.push(node) - node = iterator.iterateNext() - } - - log.consoleProps = () => { - return { - XPath: selector, - result: nodes.length === 1 ? nodes[0] : nodes, - } - } - - return nodes - } catch (e) { - console.error('Document tree modified during iteration', e) - - return null - } - } - - const resolveValue = () => { - return Cypress.Promise.try(getValue).then((value) => { - if (!isPrimitive(value)) { - value = Cypress.$(value) - // Add the ".selector" property because Cypress uses it for error messages - value.selector = selector - } - - return cy.verifyUpcomingAssertions(value, options, { - onRetry: resolveValue, - }) - }) - } - - return resolveValue().then((value) => { - if (options.log !== false) { - // TODO set found elements on the command log? - Cypress.log(log) - } - - return value - }) -} - -Cypress.Commands.add( - 'xpath', - { prevSubject: ['optional', 'element', 'document'] }, - xpath, -) diff --git a/nx.json b/nx.json new file mode 100644 index 000000000000..76786f62c297 --- /dev/null +++ b/nx.json @@ -0,0 +1,11 @@ +{ + "tasksRunnerOptions": { + "default": { + "runner": "nx-cloud", + "options": { + "cacheableOperations": [], + "accessToken": "ZmNlNjA0YzAtNTM1NS00MDIwLWFlMWItNWYxYzNiMjQ4N2VkfHJlYWQtb25seQ==" + } + } + } +} \ No newline at end of file diff --git a/package.json b/package.json index d78b40a7a434..3275e3d1d654 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypress", - "version": "12.12.0", + "version": "12.13.0", "description": "Cypress is a next generation front end testing tool built for the modern web", "private": true, "scripts": { @@ -85,6 +85,7 @@ "@graphql-tools/delegate": "8.2.1", "@graphql-tools/utils": "8.2.3", "@graphql-tools/wrap": "8.1.1", + "@nrwl/nx-cloud": "16.0.5", "@octokit/auth-app": "3.6.1", "@octokit/core": "3.6.0", "@percy/cli": "1.2.0", diff --git a/packages/app/cypress/e2e/cypress-in-cypress.cy.ts b/packages/app/cypress/e2e/cypress-in-cypress.cy.ts index d49d3bf8aaba..5e553e0e9ddd 100644 --- a/packages/app/cypress/e2e/cypress-in-cypress.cy.ts +++ b/packages/app/cypress/e2e/cypress-in-cypress.cy.ts @@ -395,4 +395,37 @@ describe('Cypress in Cypress', { viewportWidth: 1500, defaultCommandTimeout: 100 expect(ctx.actions.project.initializeActiveProject).to.be.called }) }) + + describe('runSpec mutation', () => { + it('should trigger expected spec from POST', () => { + startAtSpecsPage('e2e') + + cy.contains('E2E specs').should('be.visible') + + cy.withCtx(async (ctx) => { + const url = `http://127.0.0.1:${ctx.gqlServerPort}/__launchpad/graphql?` + const payload = `{"query":"mutation{\\nrunSpec(specPath:\\"cypress/e2e/dom-content.spec.js\\"){\\n__typename\\n... on RunSpecResponse{\\ntestingType\\nbrowser{\\nid\\nname\\n}\\nspec{\\nid\\nname\\n}\\n}\\n}\\n}","variables":null}` + + ctx.coreData.app.browserStatus = 'open' + + /* + Note: If this test starts failing, this fetch is the likely culprit. + Validate the GQL payload above is still valid by logging the fetch response JSON + */ + + await ctx.util.fetch( + url, + { + method: 'POST', + headers: { + 'content-type': 'application/json', + }, + body: payload, + }, + ) + }) + + cy.contains('Dom Content').should('be.visible') + }) + }) }) diff --git a/packages/app/cypress/e2e/runs.cy.ts b/packages/app/cypress/e2e/runs.cy.ts index cdf45b776561..e2d7e74fd136 100644 --- a/packages/app/cypress/e2e/runs.cy.ts +++ b/packages/app/cypress/e2e/runs.cy.ts @@ -2,6 +2,10 @@ import defaultMessages from '@packages/frontend-shared/src/locales/en-US.json' import type { SinonStub } from 'sinon' function moveToRunsPage (): void { + cy.withCtx((ctx, o) => { + o.sinon.stub(ctx.lifecycleManager.git!, 'currentBranch').value('fakeBranch') + }) + cy.findByTestId('sidebar-link-runs-page').click() cy.findByTestId('app-header-bar').findByText('Runs').should('be.visible') cy.findByTestId('runs-container').should('be.visible') @@ -34,6 +38,9 @@ describe('App: Runs', { viewportWidth: 1200 }, () => { cy.scaffoldProject('component-tests') cy.openProject('component-tests') cy.startAppServer('component') + cy.withCtx((ctx, o) => { + o.sinon.stub(ctx.lifecycleManager.git!, 'currentBranch').value('fakeBranch') + }) }) it('resolves the runs page', () => { @@ -99,7 +106,7 @@ describe('App: Runs', { viewportWidth: 1200 }, () => { moveToRunsPage() cy.contains('a', 'OVERLIMIT').click() - cy.withCtx((ctx) => { + cy.withCtx((ctx, o) => { expect((ctx.actions.electron.openExternal as SinonStub).lastCall.lastArg).to.contain('http://dummy.cypress.io/runs/4') }) }) @@ -315,6 +322,7 @@ describe('App: Runs', { viewportWidth: 1200 }, () => { cy.withCtx(async (ctx, o) => { o.sinon.spy(ctx.cloud, 'executeRemoteGraphQL') + o.sinon.stub(ctx.lifecycleManager.git!, 'currentBranch').value('fakeBranch') const config = await ctx.project.getConfig() expect(config.projectId).to.not.equal('newProjectId') @@ -757,6 +765,10 @@ describe('App: Runs', { viewportWidth: 1200 }, () => { }) it('should remove the alert warning if the app reconnects to the internet', () => { + cy.withCtx((ctx, o) => { + o.sinon.stub(ctx.lifecycleManager.git!, 'currentBranch').value('fakeBranch') + }) + cy.loginUser() cy.visitApp() cy.wait(1000) diff --git a/packages/app/cypress/e2e/specs_list_e2e.cy.ts b/packages/app/cypress/e2e/specs_list_e2e.cy.ts index df59656ffd44..a8a98ed481a3 100644 --- a/packages/app/cypress/e2e/specs_list_e2e.cy.ts +++ b/packages/app/cypress/e2e/specs_list_e2e.cy.ts @@ -88,7 +88,9 @@ describe('App: Spec List (E2E)', () => { it('lists files after folders when in same directory', () => { cy.findAllByTestId('row-directory-depth-2').first().click() - cy.get('[id="speclist-cypress/e2e/admin_users/"]') + const rowId = getPathForPlatform('speclist-cypress/e2e/admin_users/').replaceAll('\\', '\\\\') + + cy.get(`[id="${rowId}"]`) .next() .should('contain', 'admin.user') .next() diff --git a/packages/app/package.json b/packages/app/package.json index b0a4cff12435..109d59767634 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -21,7 +21,7 @@ "dependencies": {}, "devDependencies": { "@cypress-design/vue-button": "0.9.2", - "@cypress-design/vue-icon": "0.22.1", + "@cypress-design/vue-icon": "0.22.2", "@cypress-design/vue-statusicon": "0.4.3", "@graphql-typed-document-node/core": "^3.1.0", "@headlessui/vue": "1.4.0", diff --git a/packages/app/src/debug/DebugContainer.cy.tsx b/packages/app/src/debug/DebugContainer.cy.tsx index 9b8f30362d8c..d19613cde2f8 100644 --- a/packages/app/src/debug/DebugContainer.cy.tsx +++ b/packages/app/src/debug/DebugContainer.cy.tsx @@ -46,6 +46,7 @@ describe('', () => { const userProjectStatusStore = useUserProjectStatusStore() userProjectStatusStore.setHasInitiallyLoaded() + userProjectStatusStore.setProjectFlag('isUsingGit', true) validateEmptyState([defaultMessages.debugPage.emptyStates.connectToCypressCloud, defaultMessages.debugPage.emptyStates.connect.title, defaultMessages.debugPage.emptyStates.connect.description]) cy.findByRole('button', { name: 'Connect to Cypress Cloud' }).should('be.visible') @@ -56,6 +57,7 @@ describe('', () => { userProjectStatusStore.setUserFlag('isLoggedIn', true) userProjectStatusStore.setProjectFlag('isProjectConnected', false) + userProjectStatusStore.setProjectFlag('isUsingGit', true) userProjectStatusStore.setHasInitiallyLoaded() validateEmptyState([defaultMessages.debugPage.emptyStates.connect.title, defaultMessages.debugPage.emptyStates.connect.description]) @@ -67,6 +69,7 @@ describe('', () => { userProjectStatusStore.setUserFlag('isLoggedIn', true) userProjectStatusStore.setProjectFlag('isProjectConnected', true) + userProjectStatusStore.setProjectFlag('isUsingGit', true) userProjectStatusStore.setHasInitiallyLoaded() cy.mountFragment(DebugSpecsFragmentDoc, { variableTypes: DebugSpecVariableTypes, @@ -78,20 +81,43 @@ describe('', () => { cy.findByDisplayValue('npx cypress run --record --key 2aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa').should('be.visible') }) - it('errors', () => { + it('is not using git', () => { const userProjectStatusStore = useUserProjectStatusStore() userProjectStatusStore.setUserFlag('isLoggedIn', true) userProjectStatusStore.setProjectFlag('isProjectConnected', true) + userProjectStatusStore.setProjectFlag('isUsingGit', false) userProjectStatusStore.setHasInitiallyLoaded() cy.mountFragment(DebugSpecsFragmentDoc, { variableTypes: DebugSpecVariableTypes, variables: defaultVariables, - render: (gqlVal) => , + render: (gqlVal) => , + }) + + cy.findByTestId('debug-empty-title').should('contain.text', 'Git repository not detected') + }) + + it('has no runs for the current branch', () => { + const { setUserFlag, setProjectFlag, cloudStatusMatches, setHasInitiallyLoaded } = useUserProjectStatusStore() + + setUserFlag('isLoggedIn', true) + setUserFlag('isMemberOfOrganization', true) + setProjectFlag('isProjectConnected', true) + setProjectFlag('hasNoRecordedRuns', true) + setProjectFlag('hasNonExampleSpec', true) + setProjectFlag('isConfigLoaded', true) + setProjectFlag('isUsingGit', true) + setHasInitiallyLoaded() + + cy.mountFragment(DebugSpecsFragmentDoc, { + variableTypes: DebugSpecVariableTypes, + variables: defaultVariables, + render: (gqlVal) => , }) - cy.findByTestId('debug-empty').should('not.exist') - cy.findByTestId('debug-alert').should('be.visible') + expect(cloudStatusMatches('needsRecordedRun')).equals(true) + + cy.contains('No runs found for your branch') }) }) @@ -101,6 +127,7 @@ describe('', () => { userProjectStatusStore.setUserFlag('isLoggedIn', true) userProjectStatusStore.setProjectFlag('isProjectConnected', true) + userProjectStatusStore.setProjectFlag('isUsingGit', true) userProjectStatusStore.setHasInitiallyLoaded() }) @@ -228,6 +255,7 @@ describe('', () => { userProjectStatusStore.setUserFlag('isLoggedIn', true) userProjectStatusStore.setProjectFlag('isProjectConnected', true) + userProjectStatusStore.setProjectFlag('isUsingGit', true) userProjectStatusStore.setHasInitiallyLoaded() }) diff --git a/packages/app/src/debug/DebugContainer.vue b/packages/app/src/debug/DebugContainer.vue index 94072128c7a7..7c82b4ce64c4 100644 --- a/packages/app/src/debug/DebugContainer.vue +++ b/packages/app/src/debug/DebugContainer.vue @@ -5,9 +5,7 @@ {{ t('launchpadErrors.noInternet.connectProject') }} - + + + { return props.gql?.currentProject?.cloudProject?.__typename === 'CloudProject' ? props.gql.currentProject.cloudProject diff --git a/packages/app/src/debug/DebugResults.vue b/packages/app/src/debug/DebugResults.vue index 8a2998d82d6d..0d4b2ea042c3 100644 --- a/packages/app/src/debug/DebugResults.vue +++ b/packages/app/src/debug/DebugResults.vue @@ -1,6 +1,6 @@ @@ -25,7 +28,7 @@ type AlertComponentProps = InstanceType['$props'] interface TrackedBannerComponentProps extends AlertComponentProps { bannerId: string hasBannerBeenShown: boolean - eventData: EventData + eventData: EventData | undefined } gql` @@ -71,22 +74,22 @@ watchEffect(() => { } }) -watch(() => isAlertDisplayed.value, (newVal) => { +watch(() => isAlertDisplayed.value, async (newVal) => { if (!newVal) { - updateBannerState('dismissed') + await updateBannerState('dismissed') } }) -onMounted(() => { - updateBannerState('lastShown') +onMounted(async () => { + await updateBannerState('lastShown') }) -function updateBannerState (field: 'lastShown' | 'dismissed') { +async function updateBannerState (field: 'lastShown' | 'dismissed') { const savedBannerState = stateQuery.data.value?.currentProject?.savedState?.banners ?? {} set(savedBannerState, [props.bannerId, field], Date.now()) - setStateMutation.executeMutation({ value: JSON.stringify({ banners: savedBannerState }) }) + await setStateMutation.executeMutation({ value: JSON.stringify({ banners: savedBannerState }) }) } function recordBannerShown ({ campaign, medium, cohort }: EventData): void { @@ -98,4 +101,8 @@ function recordBannerShown ({ campaign, medium, cohort }: EventData): void { }) } +async function dismiss (): Promise { + await updateBannerState('dismissed') +} + diff --git a/packages/app/src/specs/banners/index.ts b/packages/app/src/specs/banners/index.ts index c952e10fddbb..1414b9c752d9 100644 --- a/packages/app/src/specs/banners/index.ts +++ b/packages/app/src/specs/banners/index.ts @@ -5,3 +5,5 @@ export { default as CreateOrganizationBanner } from './CreateOrganizationBanner. export { default as ConnectProjectBanner } from './ConnectProjectBanner.vue' export { default as RecordBanner } from './RecordBanner.vue' + +export { default as ComponentTestingAvailableBanner } from './ComponentTestingAvailableBanner.vue' diff --git a/packages/app/src/specs/flaky-badge/FlakyBadge.cy.tsx b/packages/app/src/specs/flaky-badge/FlakyBadge.cy.tsx index ac170e142170..0dcda8f349b4 100644 --- a/packages/app/src/specs/flaky-badge/FlakyBadge.cy.tsx +++ b/packages/app/src/specs/flaky-badge/FlakyBadge.cy.tsx @@ -10,7 +10,5 @@ describe('', () => { cy.findByTestId(flakyBadgeTestId) .should('have.text', defaultMessages.specPage.flaky.badgeLabel) .and('be.visible') - - cy.percySnapshot() }) }) diff --git a/packages/app/src/specs/flaky-badge/FlakySpecSummary.cy.tsx b/packages/app/src/specs/flaky-badge/FlakySpecSummary.cy.tsx index 79d41b964678..11b9d68ab7b7 100644 --- a/packages/app/src/specs/flaky-badge/FlakySpecSummary.cy.tsx +++ b/packages/app/src/specs/flaky-badge/FlakySpecSummary.cy.tsx @@ -1,66 +1,47 @@ import FlakySpecSummary from './FlakySpecSummary.vue' describe('', () => { - it('low severity', () => { - cy.mount( - , - ) - - cy.percySnapshot() - }) - - it('medium severity', () => { - cy.mount( - , - ) - - cy.percySnapshot() - }) - - it('high severity', () => { - cy.mount( - , - ) - - cy.percySnapshot() - }) - - it('loading state', () => { - // Ensure component handles malformed/incomplete data without blowing up - cy.mount( - , - ) + it('severities', () => { + cy.mount(() => +

) cy.findByTestId('flaky-specsummary-loading-1').should('be.visible') - cy.percySnapshot() }) diff --git a/packages/app/src/specs/generators/ExpandableFileList.cy.tsx b/packages/app/src/specs/generators/ExpandableFileList.cy.tsx index 76dc945269a8..cb149bef0e2b 100644 --- a/packages/app/src/specs/generators/ExpandableFileList.cy.tsx +++ b/packages/app/src/specs/generators/ExpandableFileList.cy.tsx @@ -50,7 +50,6 @@ describe('', { viewportHeight: 500, viewportWidth: 400 }, it('correctly formats a difficult file', () => { cy.get('body').contains('[...all]') - cy.percySnapshot() }) }) @@ -74,8 +73,6 @@ describe('', { viewportHeight: 500, viewportWidth: 400 }, )) .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/GeneratorSuccess.cy.tsx b/packages/app/src/specs/generators/GeneratorSuccess.cy.tsx index 2b89be603575..b599f125dd75 100644 --- a/packages/app/src/specs/generators/GeneratorSuccess.cy.tsx +++ b/packages/app/src/specs/generators/GeneratorSuccess.cy.tsx @@ -12,7 +12,7 @@ describe('<${spec.baseName} />', () => { it('renders', () => { // https://on.cypress.io/mount mount(<${spec.baseName} />) - }) + }) }) `.trim() @@ -21,8 +21,6 @@ describe('', () => { cy.mount(() => ()) .get('body') .contains(spec.relative) - - cy.percySnapshot() }) it('can be collapsed to hide the content', () => { @@ -34,23 +32,9 @@ describe('', () => { .wait(200) // just to show off the animation .get(targetSelector) .click() - - cy.percySnapshot() - }) - - it('can be expanded to show the content', () => { - cy.mount(() => ()) - .get(targetSelector) - .click() - .click() .get('code .line') .should('be.visible') .should('have.length', content.split('\n').length) - .wait(200) // just to show off the animation - .get(targetSelector) - .click() - - cy.percySnapshot() }) it('handles really long file names and really long content', () => { diff --git a/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx b/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx index 5f3ad5b79ad3..66109c83302d 100644 --- a/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx +++ b/packages/app/src/specs/generators/component/ReactComponentList.cy.tsx @@ -18,8 +18,6 @@ describe('ReactComponentList', () => { cy.mount() cy.contains('No components found').should('be.visible') - - cy.percySnapshot() }) it('renders error state if errored is true', () => { @@ -30,8 +28,6 @@ describe('ReactComponentList', () => { cy.mount() cy.contains('Unable to parse file').should('be.visible') - - cy.percySnapshot() }) it('fetches and displays a list of components', () => { @@ -40,8 +36,6 @@ describe('ReactComponentList', () => { 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', () => { diff --git a/packages/app/src/specs/switcher/TestingTypeSwitcher.cy.tsx b/packages/app/src/specs/switcher/TestingTypeSwitcher.cy.tsx new file mode 100644 index 000000000000..87e871d9a203 --- /dev/null +++ b/packages/app/src/specs/switcher/TestingTypeSwitcher.cy.tsx @@ -0,0 +1,56 @@ +import TestingTypeSwitcher from './TestingTypeSwitcher.vue' + +describe('', () => { + beforeEach(() => { + const stub = cy.stub().as('selectTestingType') + + cy.mount() + }) + + it('renders', () => { + cy.percySnapshot() + }) + + it('displays question mark for unconfigured testing type', () => { + cy.findByTestId('unconfigured-icon').should('be.visible') + }) + + it('emits event on switch', () => { + cy.viewport(1200, 700) + cy.findByText('Component specs').click() + cy.get('@selectTestingType').should('have.been.calledOnceWith', 'component') + }) + + it('selects current testing type when it is e2e', () => { + const stub = cy.stub().as('selectTestingType') + + cy.mount() + + cy.findByTestId('testing-type-switch').contains('button', 'E2E').should('have.attr', 'aria-selected', 'true') + cy.findByTestId('testing-type-switch').contains('button', 'Component').should('not.have.attr', 'aria-selected') + }) + + it('selects current testing type when it is component', () => { + const stub = cy.stub().as('selectTestingType') + + cy.mount() + + cy.findByTestId('testing-type-switch').contains('button', 'E2E').should('not.have.attr', 'aria-selected') + cy.findByTestId('testing-type-switch').contains('button', 'Component').should('have.attr', 'aria-selected', 'true') + }) +}) diff --git a/packages/app/src/specs/switcher/TestingTypeSwitcher.vue b/packages/app/src/specs/switcher/TestingTypeSwitcher.vue new file mode 100644 index 000000000000..48bf4be1e029 --- /dev/null +++ b/packages/app/src/specs/switcher/TestingTypeSwitcher.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/packages/app/tailwind.config.cjs b/packages/app/tailwind.config.cjs index de778a97ae2b..8e706b94f7ef 100644 --- a/packages/app/tailwind.config.cjs +++ b/packages/app/tailwind.config.cjs @@ -1,8 +1,5 @@ const config = require('@packages/frontend-shared/tailwind.config.cjs') -config.content.files = [ - './src/**/*.{vue,js,ts,jsx,tsx,scss,css}', // - '../frontend-shared/src/**/*.{vue,js,ts,jsx,tsx,scss,css}', -], +config.content.files.push('../frontend-shared/src/**/*.{vue,js,ts,jsx,tsx,scss,css}') module.exports = config diff --git a/packages/app/vite.config.mjs b/packages/app/vite.config.mjs index 9c0772108b39..a09852b05822 100644 --- a/packages/app/vite.config.mjs +++ b/packages/app/vite.config.mjs @@ -5,7 +5,23 @@ import Copy from 'rollup-plugin-copy' import Legacy from '@vitejs/plugin-legacy' import { resolve } from 'path' -export default makeConfig({}, { +export default makeConfig({ + optimizeDeps: { + include: [ + 'javascript-time-ago', + 'ansi-to-html', + 'fuzzysort', + '@cypress-design/**', + '@cypress-design/vue-button', + 'debug', + 'p-defer', + 'bluebird', + 'events', + '@popperjs/core', + '@opentelemetry/*', + ] + }, +}, { plugins: [ Layouts(), Pages({ extensions: ['vue'] }), diff --git a/packages/config/__snapshots__/validation.spec.ts.js b/packages/config/__snapshots__/validation.spec.ts.js index a713874b3627..ebd24b7fcfa9 100644 --- a/packages/config/__snapshots__/validation.spec.ts.js +++ b/packages/config/__snapshots__/validation.spec.ts.js @@ -1,13 +1,13 @@ exports['missing https protocol'] = { - "key": "clientCertificates[0].url", - "value": "http://url.com", - "type": "an https protocol" + 'key': 'clientCertificates[0].url', + 'value': 'http://url.com', + 'type': 'an https protocol', } exports['invalid url'] = { - "key": "clientCertificates[0].url", - "value": "not *", - "type": "a valid URL" + 'key': 'clientCertificates[0].url', + 'value': 'not *', + 'type': 'a valid URL', } exports['undefined browsers'] = ` @@ -19,208 +19,220 @@ Expected at least one browser ` exports['browsers list with a string'] = { - "key": "name", - "value": "foo", - "type": "a non-empty string", - "list": "browsers" + 'key': 'name', + 'value': 'foo', + 'type': 'a non-empty string', + 'list': 'browsers', } exports['invalid retry value'] = { - "key": "mockConfigKey", - "value": "1", - "type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls" + 'key': 'mockConfigKey', + 'value': '1', + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls', } exports['invalid retry object'] = { - "key": "mockConfigKey", - "value": { - "fakeMode": 1 + 'key': 'mockConfigKey', + 'value': { + 'fakeMode': 1, }, - "type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls" + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls', } exports['not qualified url'] = { - "key": "mockConfigKey", - "value": "url.com", - "type": "a fully qualified URL (starting with `http://` or `https://`)" + 'key': 'mockConfigKey', + 'value': 'url.com', + 'type': 'a fully qualified URL (starting with `http://` or `https://`)', } exports['empty string'] = { - "key": "mockConfigKey", - "value": "", - "type": "a fully qualified URL (starting with `http://` or `https://`)" + 'key': 'mockConfigKey', + 'value': '', + 'type': 'a fully qualified URL (starting with `http://` or `https://`)', } exports['not string or array'] = { - "key": "mockConfigKey", - "value": null, - "type": "a string or an array of strings" + 'key': 'mockConfigKey', + 'value': null, + 'type': 'a string or an array of strings', } exports['array of non-strings'] = { - "key": "mockConfigKey", - "value": [ + 'key': 'mockConfigKey', + 'value': [ 1, 2, - 3 + 3, ], - "type": "a string or an array of strings" + 'type': 'a string or an array of strings', } exports['not one of the strings error message'] = { - "key": "test", - "value": "nope", - "type": "one of these values: \"foo\", \"bar\"" + 'key': 'test', + 'value': 'nope', + 'type': 'one of these values: "foo", "bar"', } exports['number instead of string'] = { - "key": "test", - "value": 42, - "type": "one of these values: \"foo\", \"bar\"" + 'key': 'test', + 'value': 42, + 'type': 'one of these values: "foo", "bar"', } exports['null instead of string'] = { - "key": "test", - "value": null, - "type": "one of these values: \"foo\", \"bar\"" + 'key': 'test', + 'value': null, + 'type': 'one of these values: "foo", "bar"', } exports['not one of the numbers error message'] = { - "key": "test", - "value": 4, - "type": "one of these values: 1, 2, 3" + 'key': 'test', + 'value': 4, + 'type': 'one of these values: 1, 2, 3', } exports['string instead of a number'] = { - "key": "test", - "value": "foo", - "type": "one of these values: 1, 2, 3" + 'key': 'test', + 'value': 'foo', + 'type': 'one of these values: 1, 2, 3', } exports['null instead of a number'] = { - "key": "test", - "value": null, - "type": "one of these values: 1, 2, 3" + 'key': 'test', + 'value': null, + 'type': 'one of these values: 1, 2, 3', } exports['config/src/validation .isValidClientCertificatesSet returns error message for certs not passed as an array array 1'] = { - "key": "mockConfigKey", - "value": "1", - "type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls" + 'key': 'mockConfigKey', + 'value': '1', + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls', } exports['config/src/validation .isValidClientCertificatesSet returns error message for certs object without url 1'] = { - "key": "clientCertificates[0].url", - "type": "a URL matcher" + 'key': 'clientCertificates[0].url', + 'type': 'a URL matcher', } exports['config/src/validation .isValidBrowser passes valid browsers and forms error messages for invalid ones isValidBrowser 1'] = { - "name": "isValidBrowser", - "behavior": [ + 'name': 'isValidBrowser', + 'behavior': [ { - "given": { - "name": "Chrome", - "displayName": "Chrome Browser", - "family": "chromium", - "path": "/path/to/chrome", - "version": "1.2.3", - "majorVersion": 1 + 'given': { + 'name': 'Chrome', + 'displayName': 'Chrome Browser', + 'family': 'chromium', + 'path': '/path/to/chrome', + 'version': '1.2.3', + 'majorVersion': 1, }, - "expect": true + 'expect': true, }, { - "given": { - "name": "FF", - "displayName": "Firefox", - "family": "firefox", - "path": "/path/to/firefox", - "version": "1.2.3", - "majorVersion": "1" + 'given': { + 'name': 'FF', + 'displayName': 'Firefox', + 'family': 'firefox', + 'path': '/path/to/firefox', + 'version': '1.2.3', + 'majorVersion': '1', }, - "expect": true + 'expect': true, }, { - "given": { - "name": "Electron", - "displayName": "Electron", - "family": "chromium", - "path": "", - "version": "99.101.3", - "majorVersion": 99 + 'given': { + 'name': 'Electron', + 'displayName': 'Electron', + 'family': 'chromium', + 'path': '', + 'version': '99.101.3', + 'majorVersion': 99, }, - "expect": true + 'expect': true, }, { - "given": { - "name": "No display name", - "family": "chromium" + 'given': { + 'name': 'No display name', + 'family': 'chromium', }, - "expect": { - "key": "displayName", - "value": { - "name": "No display name", - "family": "chromium" + 'expect': { + 'key': 'displayName', + 'value': { + 'name': 'No display name', + 'family': 'chromium', }, - "type": "a non-empty string" - } + 'type': 'a non-empty string', + }, }, { - "given": { - "name": "bad family", - "displayName": "Bad family browser", - "family": "unknown family" + 'given': { + 'name': 'bad family', + 'displayName': 'Bad family browser', + 'family': 'unknown family', }, - "expect": { - "key": "family", - "value": { - "name": "bad family", - "displayName": "Bad family browser", - "family": "unknown family" + 'expect': { + 'key': 'family', + 'value': { + 'name': 'bad family', + 'displayName': 'Bad family browser', + 'family': 'unknown family', }, - "type": "either chromium, firefox or webkit" - } - } - ] + 'type': 'either chromium, firefox or webkit', + }, + }, + ], } exports['config/src/validation .isPlainObject returns error message when value is a not an object 1'] = { - "key": "mockConfigKey", - "value": 1, - "type": "a plain object" + 'key': 'mockConfigKey', + 'value': 1, + 'type': 'a plain object', } exports['config/src/validation .isNumber returns error message when value is a not a number 1'] = { - "key": "mockConfigKey", - "value": "string", - "type": "a number" + 'key': 'mockConfigKey', + 'value': 'string', + 'type': 'a number', } exports['config/src/validation .isNumberOrFalse returns error message when value is a not number or false 1'] = { - "key": "mockConfigKey", - "value": null, - "type": "a number or false" + 'key': 'mockConfigKey', + 'value': null, + 'type': 'a number or false', } exports['config/src/validation .isBoolean returns error message when value is a not a string 1'] = { - "key": "mockConfigKey", - "value": 1, - "type": "a string" + 'key': 'mockConfigKey', + 'value': 1, + 'type': 'a string', } exports['config/src/validation .isString returns error message when value is a not a string 1'] = { - "key": "mockConfigKey", - "value": 1, - "type": "a string" + 'key': 'mockConfigKey', + 'value': 1, + 'type': 'a string', } exports['config/src/validation .isArray returns error message when value is a non-array 1'] = { - "key": "mockConfigKey", - "value": 1, - "type": "an array" + 'key': 'mockConfigKey', + 'value': 1, + 'type': 'an array', } exports['config/src/validation .isStringOrFalse returns error message when value is neither string nor false 1'] = { - "key": "mockConfigKey", - "value": null, - "type": "a string or false" + 'key': 'mockConfigKey', + 'value': null, + 'type': 'a string or false', +} + +exports['invalid lower bound'] = { + 'key': 'test', + 'value': -1, + 'type': 'a valid CRF number between 1 & 51, 0 or false to disable compression, or true to use the default compression of 32', +} + +exports['invalid upper bound'] = { + 'key': 'test', + 'value': 52, + 'type': 'a valid CRF number between 1 & 51, 0 or false to disable compression, or true to use the default compression of 32', } diff --git a/packages/config/src/browser.ts b/packages/config/src/browser.ts index 509886eb5dee..94d21f2bf7e6 100644 --- a/packages/config/src/browser.ts +++ b/packages/config/src/browser.ts @@ -2,6 +2,7 @@ import _ from 'lodash' import Debug from 'debug' import { defaultSpecPattern, + defaultExcludeSpecPattern, options, breakingOptions, breakingRootOptions, @@ -17,6 +18,7 @@ import * as validation from './validation' export { defaultSpecPattern, + defaultExcludeSpecPattern, options, breakingOptions, BreakingOption, diff --git a/packages/config/src/options.ts b/packages/config/src/options.ts index 2a48153160ba..66eab7fa18f3 100644 --- a/packages/config/src/options.ts +++ b/packages/config/src/options.ts @@ -120,6 +120,11 @@ export const defaultSpecPattern = { component: '**/*.cy.{js,jsx,ts,tsx}', } +export const defaultExcludeSpecPattern = { + e2e: '*.hot-update.js', + component: ['**/__snapshots__/*', '**/__image_snapshots__/*'], +} + // NOTE: // If you add/remove/change a config value, make sure to update the following // - cli/types/index.d.ts (including allowed config options on TestOptions) @@ -271,7 +276,7 @@ const driverConfigOptions: Array = [ requireRestartOnChange: 'server', }, { name: 'excludeSpecPattern', - defaultValue: (options: Record = {}) => options.testingType === 'component' ? ['**/__snapshots__/*', '**/__image_snapshots__/*'] : '*.hot-update.js', + defaultValue: (options: Record = {}) => options.testingType === 'component' ? defaultExcludeSpecPattern.component : defaultExcludeSpecPattern.e2e, validation: validate.isStringOrArrayOfStrings, overrideLevel: 'any', }, { @@ -423,7 +428,7 @@ const driverConfigOptions: Array = [ }, { name: 'videoCompression', defaultValue: 32, - validation: validate.isNumberOrFalse, + validation: validate.isValidCrfOrBoolean, }, { name: 'videosFolder', defaultValue: 'cypress/videos', diff --git a/packages/config/src/validation.ts b/packages/config/src/validation.ts index 8f023db35515..49f2f7eeb420 100644 --- a/packages/config/src/validation.ts +++ b/packages/config/src/validation.ts @@ -301,6 +301,16 @@ export function isNumberOrFalse (key: string, value: any): ErrResult | true { return errMsg(key, value, 'a number or false') } +export function isValidCrfOrBoolean (key: string, value: any): ErrResult | true { + // a valid number that is between 1-51 including 1 or 51 + // or a boolean. false or 0 disables compression and true sets compression to 32 CRF by default. + if (_.isBoolean(value) || (_.isNumber(value) && _.inRange(value, 0, 52))) { + return true + } + + return errMsg(key, value, 'a valid CRF number between 1 & 51, 0 or false to disable compression, or true to use the default compression of 32') +} + export function isStringOrFalse (key: string, value: any): ErrResult | true { if (_.isString(value) || isFalse(value)) { return true diff --git a/packages/config/test/validation.spec.ts b/packages/config/test/validation.spec.ts index fc7b22e5eb31..36bc180d5575 100644 --- a/packages/config/test/validation.spec.ts +++ b/packages/config/test/validation.spec.ts @@ -388,4 +388,44 @@ describe('config/src/validation', () => { return snapshot('null instead of a number', msg) }) }) + + describe('.isValidCrfOrBoolean', () => { + it('validates booleans', () => { + const validate = validation.isValidCrfOrBoolean + + expect(validate).to.be.a('function') + expect(validate('test', false)).to.be.true + expect(validate('test', true)).to.be.true + }) + + it('validates any number between 0 and 51', () => { + const validate = validation.isValidCrfOrBoolean + + const validConfigNumbers = [...Array(51).keys()] + + validConfigNumbers.forEach((num) => { + expect(validate('test', num)).to.be.true + }) + }) + + it('invalidates lower bound', () => { + const validate = validation.isValidCrfOrBoolean + + const lowerBoundMsg = validate('test', -1) + + expect(lowerBoundMsg).to.not.be.true + + return snapshot('invalid lower bound', lowerBoundMsg) + }) + + it('invalidates upper bound', () => { + const validate = validation.isValidCrfOrBoolean + + const upperBoundMsg = validate('test', 52) + + expect(upperBoundMsg).to.not.be.true + + return snapshot('invalid upper bound', upperBoundMsg) + }) + }) }) diff --git a/packages/data-context/src/actions/ElectronActions.ts b/packages/data-context/src/actions/ElectronActions.ts index afce5ab557ad..091e81d54677 100644 --- a/packages/data-context/src/actions/ElectronActions.ts +++ b/packages/data-context/src/actions/ElectronActions.ts @@ -1,4 +1,4 @@ -import type { App, BrowserWindow, OpenDialogOptions, OpenDialogReturnValue, SaveDialogOptions, SaveDialogReturnValue } from 'electron' +import type { App, BrowserWindow, OpenDialogOptions, OpenDialogReturnValue, SaveDialogOptions, SaveDialogReturnValue, Notification } from 'electron' import os from 'os' import type { DataContext } from '..' import _ from 'lodash' @@ -13,6 +13,7 @@ export interface ElectronApiShape { copyTextToClipboard(text: string): void isMainWindowFocused(): boolean focusMainWindow(): void + createNotification(title: string, body: string): Notification } export class ElectronActions { @@ -104,4 +105,18 @@ export class ElectronActions { return obj.filePath || null }) } + + showSystemNotification (title: string, body: string, onClick?: () => void) { + const notification = this.ctx.electronApi.createNotification(title, body) + + const defaultOnClick = async () => { + await this.ctx.actions.browser.focusActiveBrowserWindow() + } + + const clickHandler = onClick || defaultOnClick + + notification.on('click', clickHandler) + + notification.show() + } } diff --git a/packages/data-context/src/actions/EventCollectorActions.ts b/packages/data-context/src/actions/EventCollectorActions.ts index 5d9e0e01e0b4..9f1af8f4616b 100644 --- a/packages/data-context/src/actions/EventCollectorActions.ts +++ b/packages/data-context/src/actions/EventCollectorActions.ts @@ -5,11 +5,13 @@ const pkg = require('@packages/root') const debug = Debug('cypress:data-context:actions:EventCollectorActions') -interface CollectableEvent { +interface CollectibleEvent { campaign: string messageId: string medium: string cohort?: string + payload?: object + machineId?: string } /** @@ -23,23 +25,29 @@ export class EventCollectorActions { debug('Using %s environment for Event Collection', cloudEnv) } - async recordEvent (event: CollectableEvent): Promise { + async recordEvent (event: CollectibleEvent, includeMachineId: boolean): Promise { try { const cloudUrl = this.ctx.cloud.getCloudUrl(cloudEnv) + const eventUrl = includeMachineId ? `${cloudUrl}/machine-collect` : `${cloudUrl}/anon-collect` + const headers = { + 'Content-Type': 'application/json', + 'x-cypress-version': pkg.version, + } + + if (includeMachineId) { + event.machineId = (await this.ctx.coreData.machineId) || undefined + } await this.ctx.util.fetch( - `${cloudUrl}/anon-collect`, + eventUrl, { method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'x-cypress-version': pkg.version, - }, + headers, body: JSON.stringify(event), }, ) - debug(`Recorded event: %o`, event) + debug(`Recorded %s event: %o`, includeMachineId ? 'machine-linked' : 'anonymous', event) return true } catch (err) { diff --git a/packages/data-context/src/actions/ProjectActions.ts b/packages/data-context/src/actions/ProjectActions.ts index e0f52325c0b1..5834d542c7f7 100644 --- a/packages/data-context/src/actions/ProjectActions.ts +++ b/packages/data-context/src/actions/ProjectActions.ts @@ -9,9 +9,17 @@ import type { ProjectShape } from '../data/coreDataShape' import type { DataContext } from '..' import { hasNonExampleSpec } from '../codegen' import templates from '../codegen/templates' -import { insertValuesInConfigFile } from '../util' +import { insertValuesInConfigFile, toPosix } from '../util' import { getError } from '@packages/errors' import { resetIssuedWarnings } from '@packages/config' +import type { RunSpecErrorCode } from '@packages/graphql/src/schemaTypes' +import debugLib from 'debug' + +export class RunSpecError extends Error { + constructor (public code: typeof RunSpecErrorCode[number], msg: string) { + super(msg) + } +} export interface ProjectApiShape { /** @@ -46,6 +54,8 @@ export interface ProjectApiShape { isListening: (url: string) => Promise resetBrowserTabsForNextTest(shouldKeepTabOpen: boolean): Promise resetServer(): void + runSpec(spec: Cypress.Spec): Promise + routeToDebug(): void } export interface FindSpecs { @@ -76,6 +86,8 @@ type SetForceReconfigureProjectByTestingType = { testingType?: TestingType } +const debug = debugLib('cypress:data-context:ProjectActions') + export class ProjectActions { constructor (private ctx: DataContext) {} @@ -462,4 +474,173 @@ export class ProjectActions { await this.ctx.actions.wizard.scaffoldTestingType() } } + + async runSpec ({ specPath }: { specPath: string}) { + const waitForBrowserToOpen = async () => { + const browserStatusSubscription = this.ctx.emitter.subscribeTo('browserStatusChange', { sendInitial: false }) + + // Wait for browser to finish launching. Browser is either launched from scratch + // or relaunched when switching testing types - we need to wait in either case + // We wait a maximum of 3 seconds so we don't block indefinitely in case something + // goes sideways with the browser launch process. This is broken up into three + // separate 'waits' in case we have to watch a browser relaunch (close > opening > open) + debug('Waiting for browser to report `open`') + let maxIterations = 3 + + while (this.ctx.coreData.app.browserStatus !== 'open') { + await Promise.race([ + new Promise((resolve) => setTimeout(resolve, 1000)), + browserStatusSubscription.next(), + ]) + + if (--maxIterations === 0) { + break + } + } + + await browserStatusSubscription.return(undefined as any) + } + + try { + if (!this.ctx.currentProject) { + throw new RunSpecError('NO_PROJECT', 'A project must be open prior to attempting to run a spec') + } + + if (!specPath) { + throw new RunSpecError('NO_SPEC_PATH', '`specPath` must be a non-empty string') + } + + let targetTestingType: TestingType + + // Check to see whether input specPath matches the specPattern for one or the other testing type + // If it matches neither then we can't run the spec and we should error + if (await this.ctx.project.matchesSpecPattern(specPath, 'e2e')) { + targetTestingType = 'e2e' + } else if (await this.ctx.project.matchesSpecPattern(specPath, 'component')) { + targetTestingType = 'component' + } else { + throw new RunSpecError('NO_SPEC_PATTERN_MATCH', 'Unable to determine testing type, spec does not match any configured specPattern') + } + + debug(`Spec %s matches '${targetTestingType}' pattern`, specPath) + + const absoluteSpecPath = this.ctx.path.resolve(this.ctx.currentProject, specPath) + + debug('Attempting to launch spec %s', absoluteSpecPath) + + // Look to see if there's actually a file at the target location + // This helps us avoid switching testingType *then* finding out the spec doesn't exist + if (!this.ctx.fs.existsSync(absoluteSpecPath)) { + throw new RunSpecError('SPEC_NOT_FOUND', `No file exists at path ${absoluteSpecPath}`) + } + + // We now know what testingType we need to be in - if we're already there, great + // If not, verify that type is configured then switch (or throw an error if not configured) + if (this.ctx.coreData.currentTestingType !== targetTestingType) { + if (!this.ctx.lifecycleManager.isTestingTypeConfigured(targetTestingType)) { + throw new RunSpecError('TESTING_TYPE_NOT_CONFIGURED', `Input path matched specPattern for '${targetTestingType}' testing type, but it is not configured.`) + } + + debug('Setting testing type to %s', targetTestingType) + + const specChangeSubscription = this.ctx.emitter.subscribeTo('specsChange', { sendInitial: false }) + + const originalTestingType = this.ctx.coreData.currentTestingType + + // Temporarily toggle testing type so the `activeBrowser` can be initialized + // for the targeted testing type. Browser has to be initialized prior to our "relaunch" + // call below - this can be an issue when Cypress is still on the launchpad and no + // browser has been launched yet + this.ctx.lifecycleManager.setCurrentTestingType(targetTestingType) + await this.ctx.lifecycleManager.setInitialActiveBrowser() + this.ctx.lifecycleManager.setCurrentTestingType(originalTestingType) + + // This is the magic sauce - we now have a browser selected, so this will toggle + // the testing type, trigger specs to update, and launch the browser + await this.switchTestingTypesAndRelaunch(targetTestingType) + + await waitForBrowserToOpen() + + // When testing type changes we need to wait for the specWatcher to trigger and load new specs + // otherwise our call to `getCurrentSpecByAbsolute` below will fail + // Wait a maximum of 2 seconds just in case something breaks with the event subscription + // so we don't block indefinitely + debug('Waiting for specs to finish loading') + await Promise.race([ + new Promise((resolve) => setTimeout(resolve, 2000)), + specChangeSubscription.next(), + ]) + + // Close out subscription + await specChangeSubscription.return(undefined) + } else { + debug('Already in %s testing mode', targetTestingType) + } + + // This accounts for an edge case where a testing type has been previously opened, but + // the user then backs out to the testing type selector in launchpad. In that scenario, + // the testingType switch logic above does not trigger the browser to open, so we do it + // manually here + if (this.ctx.coreData.app.browserStatus === 'closed') { + debug('No browser instance, launching...') + await this.ctx.lifecycleManager.setInitialActiveBrowser() + + await this.api.launchProject( + this.ctx.coreData.activeBrowser!, + { + name: '', + absolute: '', + relative: '', + specType: targetTestingType === 'e2e' ? 'integration' : 'component', + }, + ) + + debug('Browser launched') + } else { + debug(`Browser already running, status ${this.ctx.coreData.app.browserStatus}`) + + if (this.ctx.coreData.app.browserStatus !== 'open') { + await waitForBrowserToOpen() + } + } + + // Now that we're in the correct testingType, verify the requested spec actually exists + // We don't have specs available until a testingType is loaded, so even through we validated + // a matching file exists above it may not end up loading as a valid spec so we validate that here + // + // Have to use toPosix here to align windows absolute paths with how the absolute path is storied in the data context + const spec = this.ctx.project.getCurrentSpecByAbsolute(toPosix(absoluteSpecPath)) + + if (!spec) { + debug(`Spec not found with path: ${absoluteSpecPath}`) + throw new RunSpecError('SPEC_NOT_FOUND', `Unable to find matching spec with path ${absoluteSpecPath}`) + } + + const browser = this.ctx.coreData.activeBrowser! + + // Hooray, everything looks good and we're all set up + // Try to launch the requested spec by navigating to it in the browser + await this.api.runSpec(spec) + + return { + testingType: targetTestingType, + browser, + spec, + } + } catch (err) { + if (!(err instanceof RunSpecError)) { + debug('Unexpected error during `runSpec` %o', err) + } + + return { + code: err instanceof RunSpecError ? err.code : 'GENERAL_ERROR', + detailMessage: err.message, + } + } + } + + async debugCloudRun (runNumber: number) { + await this.ctx.relevantRuns.moveToRun(runNumber, this.ctx.git?.currentHashes || []) + this.api.routeToDebug() + } } diff --git a/packages/data-context/src/actions/WizardActions.ts b/packages/data-context/src/actions/WizardActions.ts index 7a3c4aafed63..9aa87d96f3ed 100644 --- a/packages/data-context/src/actions/WizardActions.ts +++ b/packages/data-context/src/actions/WizardActions.ts @@ -100,6 +100,14 @@ export class WizardActions { this.resetWizard() + await this.initializeFramework() + } + + async initializeFramework () { + if (!this.ctx.currentProject) { + return + } + const detected = await detectFramework(this.ctx.currentProject, this.ctx.coreData.wizard.frameworks) debug('detected %o', detected) diff --git a/packages/data-context/src/data/ProjectLifecycleManager.ts b/packages/data-context/src/data/ProjectLifecycleManager.ts index 2c1c4a6a9ad7..afac43214656 100644 --- a/packages/data-context/src/data/ProjectLifecycleManager.ts +++ b/packages/data-context/src/data/ProjectLifecycleManager.ts @@ -584,7 +584,7 @@ export class ProjectLifecycleManager { * this sources the config from the various config sources */ async getFullInitialConfig (options: Partial = this.ctx.modeOptions, withBrowsers = true): Promise { - assert(this._configManager, 'Cannot get full config a config manager') + assert(this._configManager, 'Cannot get full config without a config manager') return this._configManager.getFullInitialConfig(options, withBrowsers) } diff --git a/packages/data-context/src/data/coreDataShape.ts b/packages/data-context/src/data/coreDataShape.ts index 1dd5322525f0..529311c62f84 100644 --- a/packages/data-context/src/data/coreDataShape.ts +++ b/packages/data-context/src/data/coreDataShape.ts @@ -7,6 +7,7 @@ import type { SocketIONamespace, SocketIOServer } from '@packages/socket' import type { Server } from 'http' import type { ErrorWrapperSource } from '@packages/errors' import type { GitDataSource, LegacyCypressConfigJson } from '../sources' +import { machineId as getMachineId } from 'node-machine-id' export type Maybe = T | null | undefined @@ -123,6 +124,7 @@ export interface CoreDataShape { cliBrowser: string | null cliTestingType: string | null activeBrowser: FoundBrowser | null + machineId: Promise machineBrowsers: Promise | null allBrowsers: Promise | null servers: { @@ -166,6 +168,7 @@ export function makeCoreData (modeOptions: Partial = {}): CoreDa servers: {}, cliBrowser: modeOptions.browser ?? null, cliTestingType: modeOptions.testingType ?? null, + machineId: machineId(), machineBrowsers: null, allBrowsers: null, hasInitializedMode: null, @@ -233,4 +236,12 @@ export function makeCoreData (modeOptions: Partial = {}): CoreDa testsForRunResults: {}, }, } + + async function machineId (): Promise { + try { + return await getMachineId() + } catch (error) { + return null + } + } } diff --git a/packages/data-context/src/sources/HtmlDataSource.ts b/packages/data-context/src/sources/HtmlDataSource.ts index a8f377e2f1ea..bbdc351245a7 100644 --- a/packages/data-context/src/sources/HtmlDataSource.ts +++ b/packages/data-context/src/sources/HtmlDataSource.ts @@ -120,7 +120,7 @@ export class HtmlDataSource { window.__CYPRESS_CONFIG__ = ${JSON.stringify(serveConfig)}; window.__CYPRESS_TESTING_TYPE__ = '${this.ctx.coreData.currentTestingType}' window.__CYPRESS_BROWSER__ = ${JSON.stringify(this.ctx.coreData.activeBrowser)} - ${telemetry.isEnabled() ? `window.__CYPRESS_TELEMETRY__ = ${JSON.stringify({ context: telemetry.getActiveContextObject(), resources: telemetry.getResources() })}` : ''} + ${telemetry.isEnabled() ? `window.__CYPRESS_TELEMETRY__ = ${JSON.stringify({ context: telemetry.getActiveContextObject(), resources: telemetry.getResources(), isVerbose: telemetry.isVerbose() })}` : ''} ${process.env.CYPRESS_INTERNAL_GQL_NO_SOCKET ? `window.__CYPRESS_GQL_NO_SOCKET__ = 'true';` : ''} `) diff --git a/packages/data-context/src/sources/ProjectDataSource.ts b/packages/data-context/src/sources/ProjectDataSource.ts index b8cea8e9fa63..95284e536cb8 100644 --- a/packages/data-context/src/sources/ProjectDataSource.ts +++ b/packages/data-context/src/sources/ProjectDataSource.ts @@ -7,7 +7,7 @@ import path from 'path' import Debug from 'debug' import commonPathPrefix from 'common-path-prefix' import type { FSWatcher } from 'chokidar' -import { defaultSpecPattern } from '@packages/config' +import { defaultSpecPattern, defaultExcludeSpecPattern } from '@packages/config' import parseGlob from 'parse-glob' import micromatch from 'micromatch' import RandExp from 'randexp' @@ -23,12 +23,20 @@ import type { ProjectShape } from '../data' import type { FindSpecs } from '../actions' import { FileExtension, getDefaultSpecFileName } from './migration/utils' +type SpecPatterns = { + specPattern?: string[] + excludeSpecPattern?: string[] +} + interface MatchedSpecs { projectRoot: string testingType: Cypress.TestingType specAbsolutePaths: string[] specPattern: string | string[] } + +const toArray = (val?: string | string[]) => val ? typeof val === 'string' ? [val] : val : undefined + export function matchedSpecs ({ projectRoot, testingType, @@ -258,12 +266,10 @@ export class ProjectDataSource { this.ctx.coreData.app.relaunchBrowser = relaunchBrowser } - async specPatterns (): Promise<{ - specPattern?: string[] - excludeSpecPattern?: string[] - }> { - const toArray = (val?: string | string[]) => val ? typeof val === 'string' ? [val] : val : undefined - + /** + * Retrieve the applicable spec patterns for the current testing type + */ + async specPatterns (): Promise { const config = await this.getConfig() return { @@ -272,6 +278,26 @@ export class ProjectDataSource { } } + /** + * Retrieve the applicable spec patterns for a given testing type. Can be used to check whether + * a spec satisfies the pattern when outside a given testing type. + */ + async specPatternsByTestingType (testingType: TestingType): Promise { + const configFile = await this.ctx.lifecycleManager.getConfigFileContents() + + if (testingType === 'e2e') { + return { + specPattern: toArray(configFile.e2e?.specPattern ?? defaultSpecPattern.e2e), + excludeSpecPattern: toArray(configFile.e2e?.excludeSpecPattern ?? defaultExcludeSpecPattern.e2e), + } + } + + return { + specPattern: toArray(configFile.component?.specPattern ?? defaultSpecPattern.component), + excludeSpecPattern: toArray(configFile.component?.excludeSpecPattern ?? defaultExcludeSpecPattern.component), + } + } + async findSpecs ({ projectRoot, testingType, @@ -460,14 +486,21 @@ export class ProjectDataSource { }) } - async matchesSpecPattern (specFile: string): Promise { - if (!this.ctx.currentProject || !this.ctx.coreData.currentTestingType) { + /** + * Determines whether a given spec file satisfies the spec pattern *and* does not satisfy any + * exclusionary pattern. By default it will check the spec pattern for the currently-active + * testing type, but a target testing type can be supplied via optional parameter. + */ + async matchesSpecPattern (specFile: string, testingType?: TestingType): Promise { + const targetTestingType = testingType || this.ctx.coreData.currentTestingType + + if (!this.ctx.currentProject || !targetTestingType) { return false } const MINIMATCH_OPTIONS = { dot: true, matchBase: true } - const { specPattern = [], excludeSpecPattern = [] } = await this.ctx.project.specPatterns() + const { specPattern = [], excludeSpecPattern = [] } = await this.ctx.project.specPatternsByTestingType(targetTestingType) for (const pattern of excludeSpecPattern) { if (minimatch(specFile, pattern, MINIMATCH_OPTIONS)) { diff --git a/packages/data-context/src/sources/UtilDataSource.ts b/packages/data-context/src/sources/UtilDataSource.ts index b17a716c21e5..7ccdf22fd9dc 100644 --- a/packages/data-context/src/sources/UtilDataSource.ts +++ b/packages/data-context/src/sources/UtilDataSource.ts @@ -1,6 +1,6 @@ import fetch from 'cross-fetch' import type { DataContext } from '../DataContext' -import { isDependencyInstalled } from '@packages/scaffold-config' +import { isDependencyInstalled, isDependencyInstalledByName } from '@packages/scaffold-config' // Require rather than import since data-context is stricter than network and there are a fair amount of errors in agent. const { agent } = require('@packages/network') @@ -23,4 +23,8 @@ export class UtilDataSource { isDependencyInstalled (dependency: Cypress.CypressComponentDependency, projectPath: string) { return isDependencyInstalled(dependency, projectPath) } + + isDependencyInstalledByName (packageName: string, projectPath: string) { + return isDependencyInstalledByName(packageName, projectPath) + } } diff --git a/packages/data-context/src/sources/VersionsDataSource.ts b/packages/data-context/src/sources/VersionsDataSource.ts index f2bfcf29d1d5..88cc16f7d254 100644 --- a/packages/data-context/src/sources/VersionsDataSource.ts +++ b/packages/data-context/src/sources/VersionsDataSource.ts @@ -3,13 +3,11 @@ import type { DataContext } from '..' import type { TestingType } from '@packages/types' import { CYPRESS_REMOTE_MANIFEST_URL, NPM_CYPRESS_REGISTRY_URL } from '@packages/types' import Debug from 'debug' -import { WIZARD_DEPENDENCIES } from '@packages/scaffold-config' -import semver from 'semver' +import { dependencyNamesToDetect } from '@packages/scaffold-config' const debug = Debug('cypress:data-context:sources:VersionsDataSource') const pkg = require('@packages/root') -const nmi = require('node-machine-id') interface Version { id: string @@ -131,7 +129,7 @@ export class VersionsDataSource { return pkg.version } - const id = await VersionsDataSource.machineId() + const id = (await this.ctx.coreData.machineId) || undefined const manifestHeaders: HeadersInit = { 'Content-Type': 'application/json', @@ -162,45 +160,43 @@ export class VersionsDataSource { } } - try { - const projectPath = this.ctx.currentProject - - if (projectPath) { - const dependenciesToCheck = WIZARD_DEPENDENCIES - - debug('Checking %d dependencies in project', dependenciesToCheck.length) - // Check all dependencies of interest in parallel - const dependencyResults = await Promise.allSettled( - dependenciesToCheck.map(async (dependency) => { - const result = await this.ctx.util.isDependencyInstalled(dependency, projectPath) - - // If a dependency isn't satisfied then we are no longer interested in it, - // exclude from further processing by rejecting promise - if (!result.satisfied) { - throw new Error('Unsatisfied dependency') - } - - // We only want major version, fallback to `-1` if we couldn't detect version - const majorVersion = result.detectedVersion ? semver.major(result.detectedVersion) : -1 - - // For any satisfied dependencies, build a `package@version` string - return `${result.dependency.package}@${majorVersion}` - }), - ) - // Take any dependencies that were found and combine into comma-separated string - const headerValue = dependencyResults - .filter(this.isFulfilled) - .map((result) => result.value) - .join(',') - - if (headerValue) { - manifestHeaders['x-dependencies'] = headerValue + if (this._initialLaunch) { + try { + const projectPath = this.ctx.currentProject + + if (projectPath) { + debug('Checking %d dependencies in project', dependencyNamesToDetect.length) + // Check all dependencies of interest in parallel + const dependencyResults = await Promise.allSettled( + dependencyNamesToDetect.map(async (dependency) => { + const result = await this.ctx.util.isDependencyInstalledByName(dependency, projectPath) + + if (!result.detectedVersion) { + throw new Error(`Could not resolve dependency version for ${dependency}`) + } + + // For any satisfied dependencies, build a `package@version` string + return `${result.dependency}@${result.detectedVersion}` + }), + ) + + // Take any dependencies that were found and combine into comma-separated string + const headerValue = dependencyResults + .filter(this.isFulfilled) + .map((result) => result.value) + .join(',') + + if (headerValue) { + manifestHeaders['x-dependencies'] = headerValue + } + } else { + debug('No project path, skipping dependency check') } - } else { - debug('No project path, skipping dependency check') + } catch (err) { + debug('Failed to detect project dependencies', err) } - } catch (err) { - debug('Failed to detect project dependencies', err) + } else { + debug('Not initial launch of Cypress, skipping dependency check') } try { @@ -226,14 +222,6 @@ export class VersionsDataSource { } } - private static async machineId (): Promise { - try { - return await nmi.machineId() - } catch (error) { - return undefined - } - } - private isFulfilled (item: PromiseSettledResult): item is PromiseFulfilledResult { return item.status === 'fulfilled' } diff --git a/packages/data-context/test/unit/actions/EventCollectorActions.spec.ts b/packages/data-context/test/unit/actions/EventCollectorActions.spec.ts index e5fe67b19547..0e989ebdcb76 100644 --- a/packages/data-context/test/unit/actions/EventCollectorActions.spec.ts +++ b/packages/data-context/test/unit/actions/EventCollectorActions.spec.ts @@ -24,13 +24,13 @@ describe('EventCollectorActions', () => { }) context('.recordEvent', () => { - it('makes expected request', async () => { + it('makes expected request for anonymous event', async () => { await actions.recordEvent({ campaign: 'abc', medium: 'def', messageId: 'ghi', cohort: '123', - }) + }, false) expect(ctx.util.fetch).to.have.been.calledOnceWith( sinon.match(/anon-collect$/), // Verify URL ends with expected 'anon-collect' path @@ -38,10 +38,26 @@ describe('EventCollectorActions', () => { ) }) + it('makes expected request for machine-linked event', async () => { + ctx.coreData.machineId = Promise.resolve('xyz') + + await actions.recordEvent({ + campaign: 'abc', + medium: 'def', + messageId: 'ghi', + cohort: '123', + }, true) + + expect(ctx.util.fetch).to.have.been.calledOnceWith( + sinon.match(/machine-collect$/), // Verify URL ends with expected 'machine-collect' path + { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-cypress-version': pkg.version }, body: '{"campaign":"abc","medium":"def","messageId":"ghi","cohort":"123","machineId":"xyz"}' }, + ) + }) + it('resolve true if request succeeds', async () => { (ctx.util.fetch as SinonStub).resolves({} as any) - const result = await actions.recordEvent({ campaign: '', medium: '', messageId: '', cohort: '' }) + const result = await actions.recordEvent({ campaign: '', medium: '', messageId: '', cohort: '' }, false) expect(result).to.eql(true) }) @@ -49,7 +65,7 @@ describe('EventCollectorActions', () => { it('resolves false if request fails', async () => { (ctx.util.fetch as SinonStub).rejects({} as any) - const result = await actions.recordEvent({ campaign: '', medium: '', messageId: '', cohort: '' }) + const result = await actions.recordEvent({ campaign: '', medium: '', messageId: '', cohort: '' }, false) expect(result).to.eql(false) }) diff --git a/packages/data-context/test/unit/actions/ProjectActions.spec.ts b/packages/data-context/test/unit/actions/ProjectActions.spec.ts index dc95bf2175a1..6420d8366126 100644 --- a/packages/data-context/test/unit/actions/ProjectActions.spec.ts +++ b/packages/data-context/test/unit/actions/ProjectActions.spec.ts @@ -103,4 +103,178 @@ describe('ProjectActions', () => { }) }) }) + + describe('runSpec', () => { + context('no project', () => { + it('should fail with `NO_PROJECT`', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + code: 'NO_PROJECT', + detailMessage: sinon.match.string, + }) + }) + }) + + context('empty specPath', () => { + beforeEach(() => { + ctx.coreData.currentProject = '/cy-project' + }) + + it('should fail with `NO_SPEC_PATH`', async () => { + const result = await ctx.actions.project.runSpec({ specPath: '' }) + + sinon.assert.match(result, { + code: 'NO_SPEC_PATH', + detailMessage: sinon.match.string, + }) + }) + }) + + context('no specPattern match', () => { + beforeEach(() => { + ctx.coreData.currentProject = '/cy-project' + sinon.stub(ctx.project, 'matchesSpecPattern').resolves(false) + }) + + it('should fail with `NO_SPEC_PATTERN_MATCH`', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + code: 'NO_SPEC_PATTERN_MATCH', + detailMessage: sinon.match.string, + }) + }) + }) + + context('spec file not found', () => { + beforeEach(() => { + ctx.coreData.currentProject = '/cy-project' + sinon.stub(ctx.project, 'matchesSpecPattern').withArgs(sinon.match.string, 'e2e').resolves(true) + sinon.stub(ctx.fs, 'existsSync').returns(false) + }) + + it('should fail with `SPEC_NOT_FOUND`', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + code: 'SPEC_NOT_FOUND', + detailMessage: sinon.match.string, + }) + }) + }) + + context('matched testing type not configured', () => { + beforeEach(() => { + ctx.coreData.currentTestingType = null + ctx.coreData.currentProject = '/cy-project' + sinon.stub(ctx.project, 'matchesSpecPattern').withArgs(sinon.match.string, 'e2e').resolves(true) + sinon.stub(ctx.fs, 'existsSync').returns(true) + sinon.stub(ctx.lifecycleManager, 'isTestingTypeConfigured').withArgs('e2e').returns(false) + }) + + it('should fail with `TESTING_TYPE_NOT_CONFIGURED`', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + code: 'TESTING_TYPE_NOT_CONFIGURED', + detailMessage: sinon.match.string, + }) + }) + }) + + context('spec can be executed', () => { + beforeEach(() => { + ctx.coreData.currentProject = '/cy-project' + sinon.stub(ctx.project, 'matchesSpecPattern').withArgs(sinon.match.string, 'e2e').resolves(true) + sinon.stub(ctx.fs, 'existsSync').returns(true) + sinon.stub(ctx.project, 'getCurrentSpecByAbsolute').returns({ id: 'xyz' } as any) + sinon.stub(ctx.lifecycleManager, 'setInitialActiveBrowser') + ctx.coreData.activeBrowser = { id: 'abc' } as any + sinon.stub(ctx.lifecycleManager, 'setCurrentTestingType') + sinon.stub(ctx.actions.project, 'switchTestingTypesAndRelaunch') + ctx.coreData.app.browserStatus = 'open' + sinon.stub(ctx.emitter, 'subscribeTo').returns({ + next: () => {}, + return: () => {}, + } as any) + }) + + context('no current testing type', () => { + beforeEach(() => { + ctx.coreData.currentTestingType = null + sinon.stub(ctx.lifecycleManager, 'isTestingTypeConfigured').withArgs('e2e').returns(true) + }) + + it('should succeed', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + testingType: 'e2e', + browser: sinon.match.object, + spec: sinon.match.object, + }) + + expect(ctx.lifecycleManager.setCurrentTestingType).to.have.been.calledWith('e2e') + expect(ctx.actions.project.switchTestingTypesAndRelaunch).to.have.been.calledWith('e2e') + expect(ctx._apis.projectApi.runSpec).to.have.been.called + }) + }) + + context('testing type needs to change', () => { + beforeEach(() => { + ctx.coreData.currentTestingType = 'component' + sinon.stub(ctx.lifecycleManager, 'isTestingTypeConfigured').withArgs('e2e').returns(true) + }) + + it('should succeed', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + testingType: 'e2e', + browser: sinon.match.object, + spec: sinon.match.object, + }) + + expect(ctx.lifecycleManager.setCurrentTestingType).to.have.been.calledWith('e2e') + expect(ctx.actions.project.switchTestingTypesAndRelaunch).to.have.been.calledWith('e2e') + expect(ctx._apis.projectApi.runSpec).to.have.been.called + }) + }) + + context('testing type does not need to change', () => { + beforeEach(() => { + ctx.coreData.currentTestingType = 'e2e' + }) + + it('should succeed', async () => { + const result = await ctx.actions.project.runSpec({ specPath: 'e2e/abc.cy.ts' }) + + sinon.assert.match(result, { + testingType: 'e2e', + browser: sinon.match.object, + spec: sinon.match.object, + }) + + expect(ctx.lifecycleManager.setCurrentTestingType).not.to.have.been.called + expect(ctx.actions.project.switchTestingTypesAndRelaunch).not.to.have.been.called + + expect(ctx._apis.projectApi.runSpec).to.have.been.called + }) + }) + }) + }) + + describe('debugCloudRun', () => { + beforeEach(() => { + sinon.stub(ctx.relevantRuns, 'moveToRun') + }) + + it('should call moveToRun and routeToDebug', async () => { + await ctx.actions.project.debugCloudRun(123) + + expect(ctx.relevantRuns.moveToRun).to.have.been.calledWith(123) + expect(ctx._apis.projectApi.routeToDebug).to.have.been.called + }) + }) }) diff --git a/packages/data-context/test/unit/helper.ts b/packages/data-context/test/unit/helper.ts index 417d74167e06..17091f92143c 100644 --- a/packages/data-context/test/unit/helper.ts +++ b/packages/data-context/test/unit/helper.ts @@ -56,6 +56,8 @@ export function createTestDataContext (mode: DataContextConfig['mode'] = 'run', closeActiveProject: sinon.stub(), insertProjectToCache: sinon.stub().resolves(), getProjectRootsFromCache: sinon.stub().resolves([]), + runSpec: sinon.stub(), + routeToDebug: sinon.stub(), } as unknown as ProjectApiShape, electronApi: { isMainWindowFocused: sinon.stub().returns(false), diff --git a/packages/data-context/test/unit/sources/ProjectDataSource.spec.ts b/packages/data-context/test/unit/sources/ProjectDataSource.spec.ts index d29e5ffe690e..d50d56c4af9d 100644 --- a/packages/data-context/test/unit/sources/ProjectDataSource.spec.ts +++ b/packages/data-context/test/unit/sources/ProjectDataSource.spec.ts @@ -12,7 +12,7 @@ import { FoundSpec } from '@packages/types' import { DataContext } from '../../../src' import type { FindSpecs } from '../../../src/actions' import { createTestDataContext } from '../helper' -import { defaultSpecPattern } from '@packages/config' +import { defaultExcludeSpecPattern, defaultSpecPattern } from '@packages/config' import FixturesHelper from '@tooling/system-tests' chai.use(sinonChai) @@ -827,6 +827,7 @@ describe('ProjectDataSource', () => { it('yields correct jsx extension if there are jsx files and specPattern allows', async () => { sinon.stub(ctx.project, 'specPatterns').resolves({ specPattern: [defaultSpecPattern.component] }) + sinon.stub(ctx.project, 'specPatternsByTestingType').resolves({ specPattern: [defaultSpecPattern.component] }) const defaultSpecFileName = await ctx.project.defaultSpecFileName() @@ -835,6 +836,7 @@ describe('ProjectDataSource', () => { it('yields non-jsx extension if there are jsx files but specPattern disallows', async () => { sinon.stub(ctx.project, 'specPatterns').resolves({ specPattern: ['cypress/component/*.cy.js'] }) + sinon.stub(ctx.project, 'specPatternsByTestingType').resolves({ specPattern: ['cypress/component/*.cy.js'] }) const defaultSpecFileName = await ctx.project.defaultSpecFileName() @@ -843,4 +845,59 @@ describe('ProjectDataSource', () => { }) }) }) + + describe('specPatternsByTestingType', () => { + context('when custom patterns configured', () => { + beforeEach(() => { + sinon.stub(ctx.lifecycleManager, 'getConfigFileContents').resolves({ + e2e: { + specPattern: 'abc', + excludeSpecPattern: 'def', + }, + component: { + specPattern: 'uvw', + excludeSpecPattern: 'xyz', + } as any, + }) + }) + + it('should return custom e2e patterns', async () => { + expect(await ctx.project.specPatternsByTestingType('e2e')).to.eql({ + specPattern: ['abc'], + excludeSpecPattern: ['def'], + }) + }) + + it('should return custom component patterns', async () => { + expect(await ctx.project.specPatternsByTestingType('component')).to.eql({ + specPattern: ['uvw'], + excludeSpecPattern: ['xyz'], + }) + }) + }) + + context('when no custom patterns configured', () => { + const wrapInArray = (value: string | string[]): string[] => { + return Array.isArray(value) ? value : [value] + } + + beforeEach(() => { + sinon.stub(ctx.lifecycleManager, 'getConfigFileContents').resolves({}) + }) + + it('should return default e2e patterns', async () => { + expect(await ctx.project.specPatternsByTestingType('e2e')).to.eql({ + specPattern: wrapInArray(defaultSpecPattern.e2e), + excludeSpecPattern: wrapInArray(defaultExcludeSpecPattern.e2e), + }) + }) + + it('should return default component patterns', async () => { + expect(await ctx.project.specPatternsByTestingType('component')).to.eql({ + specPattern: wrapInArray(defaultSpecPattern.component), + excludeSpecPattern: wrapInArray(defaultExcludeSpecPattern.component), + }) + }) + }) + }) }) diff --git a/packages/data-context/test/unit/sources/VersionsDataSource.spec.ts b/packages/data-context/test/unit/sources/VersionsDataSource.spec.ts index 68285554507d..3bb8cdfc8cbe 100644 --- a/packages/data-context/test/unit/sources/VersionsDataSource.spec.ts +++ b/packages/data-context/test/unit/sources/VersionsDataSource.spec.ts @@ -9,14 +9,12 @@ import { createTestDataContext } from '../helper' import { CYPRESS_REMOTE_MANIFEST_URL, NPM_CYPRESS_REGISTRY_URL } from '@packages/types' const pkg = require('@packages/root') -const nmi = require('node-machine-id') describe('VersionsDataSource', () => { context('.versions', () => { let ctx: DataContext - let nmiStub: sinon.SinonStub let fetchStub: sinon.SinonStub - let isDependencyInstalledStub: sinon.SinonStub + let isDependencyInstalledByNameStub: sinon.SinonStub let mockNow: Date = new Date() let versionsDataSource: VersionsDataSource let currentCypressVersion: string = pkg.version @@ -33,17 +31,17 @@ describe('VersionsDataSource', () => { }, } + ctx.coreData.machineId = Promise.resolve('abcd123') ctx.coreData.currentProject = '/abc' ctx.coreData.currentTestingType = 'e2e' fetchStub = sinon.stub() - isDependencyInstalledStub = sinon.stub() + isDependencyInstalledByNameStub = sinon.stub() }) beforeEach(() => { - nmiStub = sinon.stub(nmi, 'machineId') sinon.stub(ctx.util, 'fetch').callsFake(fetchStub) - sinon.stub(ctx.util, 'isDependencyInstalled').callsFake(isDependencyInstalledStub) + sinon.stub(ctx.util, 'isDependencyInstalledByName').callsFake(isDependencyInstalledByNameStub) sinon.stub(os, 'platform').returns('darwin') sinon.stub(os, 'arch').returns('x64') sinon.useFakeTimers({ now: mockNow }) @@ -54,8 +52,6 @@ describe('VersionsDataSource', () => { }) it('loads the manifest for the latest version with all headers and queries npm for release dates', async () => { - nmiStub.resolves('abcd123') - fetchStub .withArgs(CYPRESS_REMOTE_MANIFEST_URL, { headers: sinon.match({ @@ -107,7 +103,7 @@ describe('VersionsDataSource', () => { it('resets telemetry data triggering a new call to get the latest version', async () => { const currentCypressVersion = pkg.version - nmiStub.rejects('Error while obtaining machine id') + ctx.coreData.machineId = Promise.resolve(null) ctx.coreData.currentTestingType = 'component' fetchStub @@ -140,8 +136,6 @@ describe('VersionsDataSource', () => { }) it('handles errors fetching version data', async () => { - nmiStub.resolves('abcd123') - fetchStub .withArgs(CYPRESS_REMOTE_MANIFEST_URL, { headers: sinon.match({ @@ -167,8 +161,6 @@ describe('VersionsDataSource', () => { }) it('handles invalid response errors', async () => { - nmiStub.resolves('abcd123') - fetchStub .withArgs(CYPRESS_REMOTE_MANIFEST_URL, { headers: sinon.match({ @@ -202,31 +194,41 @@ describe('VersionsDataSource', () => { }) it('generates x-framework, x-bundler, and x-dependencies headers', async () => { - isDependencyInstalledStub.callsFake(async (dependency) => { + isDependencyInstalledByNameStub.callsFake(async (packageName) => { // Should include any resolved dependency with a valid version - if (dependency.package === 'react') { + if (packageName === 'react') { return { - dependency, + dependency: packageName, detectedVersion: '1.2.3', - satisfied: true, } as Cypress.DependencyToInstall } - // Not satisfied dependency should be excluded - if (dependency.package === 'vue') { + if (packageName === 'vue') { return { - dependency, + dependency: packageName, detectedVersion: '4.5.6', - satisfied: false, } } - // Satisfied dependency without resolved version should result in -1 - if (dependency.package === 'typescript') { + if (packageName === '@builder.io/qwik') { + return { + dependency: packageName, + detectedVersion: '1.1.4', + } + } + + if (packageName === '@playwright/experimental-ct-core') { + return { + dependency: packageName, + detectedVersion: '1.33.0', + } + } + + // Dependency without resolved version should be excluded + if (packageName === 'typescript') { return { - dependency, + dependency: packageName, detectedVersion: null, - satisfied: true, } } @@ -246,7 +248,7 @@ describe('VersionsDataSource', () => { headers: sinon.match({ 'x-framework': 'react', 'x-dev-server': 'vite', - 'x-dependencies': 'typescript@-1,react@1', + 'x-dependencies': 'react@1.2.3,vue@4.5.6,@builder.io/qwik@1.1.4,@playwright/experimental-ct-core@1.33.0', }), }, ) diff --git a/packages/driver/cypress/plugins/index.js b/packages/driver/cypress/plugins/index.js index ee2501ed40f7..3968f8e60043 100644 --- a/packages/driver/cypress/plugins/index.js +++ b/packages/driver/cypress/plugins/index.js @@ -15,8 +15,6 @@ async function getWebpackOptions () { const webpackOptions = opts[0] - console.log(webpackOptions) - // set mode to development which overrides // the 'none' value of the base webpack config // https://webpack.js.org/configuration/mode/ diff --git a/packages/driver/src/cypress.ts b/packages/driver/src/cypress.ts index 9850d6d92ca8..1afd7f2b9444 100644 --- a/packages/driver/src/cypress.ts +++ b/packages/driver/src/cypress.ts @@ -616,6 +616,9 @@ class $Cypress { case 'cy:command:end': return this.emit('command:end', ...args) + case 'cy:command:failed': + return this.emit('command:failed', ...args) + case 'cy:skipped:command:end': return this.emit('skipped:command:end', ...args) diff --git a/packages/driver/src/cypress/command_queue.ts b/packages/driver/src/cypress/command_queue.ts index f442657f63d9..be28d47858cb 100644 --- a/packages/driver/src/cypress/command_queue.ts +++ b/packages/driver/src/cypress/command_queue.ts @@ -541,6 +541,7 @@ export class CommandQueue extends Queue<$Command> { current.fail() } + Cypress.action('cy:command:failed', current, err) this.cleanup() return this.cy.fail(err) diff --git a/packages/errors/__snapshot-html__/CLOUD_CANNOT_UPLOAD_RESULTS.html b/packages/errors/__snapshot-html__/CLOUD_CANNOT_UPLOAD_ARTIFACTS.html similarity index 94% rename from packages/errors/__snapshot-html__/CLOUD_CANNOT_UPLOAD_RESULTS.html rename to packages/errors/__snapshot-html__/CLOUD_CANNOT_UPLOAD_ARTIFACTS.html index 3068e21d2321..e8d2ceec9ecb 100644 --- a/packages/errors/__snapshot-html__/CLOUD_CANNOT_UPLOAD_RESULTS.html +++ b/packages/errors/__snapshot-html__/CLOUD_CANNOT_UPLOAD_ARTIFACTS.html @@ -34,7 +34,7 @@ -
Warning: We encountered an error while uploading results from your run.
+    
Warning: We encountered an error while uploading screenshots & videos from your run.
 
 These results will not be recorded.
 
diff --git a/packages/errors/__snapshot-html__/VIDEO_POST_PROCESSING_FAILED.html b/packages/errors/__snapshot-html__/VIDEO_CAPTURE_FAILED.html
similarity index 78%
rename from packages/errors/__snapshot-html__/VIDEO_POST_PROCESSING_FAILED.html
rename to packages/errors/__snapshot-html__/VIDEO_CAPTURE_FAILED.html
index 5f0017b8e6fb..dc8c80bf8db7 100644
--- a/packages/errors/__snapshot-html__/VIDEO_POST_PROCESSING_FAILED.html
+++ b/packages/errors/__snapshot-html__/VIDEO_CAPTURE_FAILED.html
@@ -34,11 +34,11 @@
     
   
     
-    
Warning: We failed processing this video.
+    
Warning: We failed capturing this video.
 
 This error will not affect or change the exit code.
 
 Error: fail whale
     at makeErr (cypress/packages/errors/test/unit/visualSnapshotErrors_spec.ts)
-    at VIDEO_POST_PROCESSING_FAILED (cypress/packages/errors/test/unit/visualSnapshotErrors_spec.ts)
+    at VIDEO_CAPTURE_FAILED (cypress/packages/errors/test/unit/visualSnapshotErrors_spec.ts)
 
\ No newline at end of file diff --git a/packages/errors/__snapshot-html__/VIDEO_COMPRESSION_FAILED.html b/packages/errors/__snapshot-html__/VIDEO_COMPRESSION_FAILED.html new file mode 100644 index 000000000000..343b4fa4c424 --- /dev/null +++ b/packages/errors/__snapshot-html__/VIDEO_COMPRESSION_FAILED.html @@ -0,0 +1,44 @@ + + + + + + + + + + + +
Warning: We failed compressing this video.
+
+This error will not affect or change the exit code.
+
+Error: fail whale
+    at makeErr (cypress/packages/errors/test/unit/visualSnapshotErrors_spec.ts)
+    at VIDEO_COMPRESSION_FAILED (cypress/packages/errors/test/unit/visualSnapshotErrors_spec.ts)
+
\ No newline at end of file diff --git a/packages/errors/src/errors.ts b/packages/errors/src/errors.ts index bebb87b26e86..c3151f51a5b8 100644 --- a/packages/errors/src/errors.ts +++ b/packages/errors/src/errors.ts @@ -75,9 +75,17 @@ export const AllCypressErrors = { ${fmt.stackTrace(arg1)}` }, - VIDEO_POST_PROCESSING_FAILED: (arg1: Error) => { + VIDEO_CAPTURE_FAILED: (arg1: Error) => { return errTemplate`\ - Warning: We failed processing this video. + Warning: We failed capturing this video. + + This error will not affect or change the exit code. + + ${fmt.stackTrace(arg1)}` + }, + VIDEO_COMPRESSION_FAILED: (arg1: Error) => { + return errTemplate`\ + Warning: We failed compressing this video. This error will not affect or change the exit code. @@ -354,6 +362,7 @@ export const AllCypressErrors = { ${fmt.highlightSecondary(`Auto Cancellation`)} is not included under your current billing plan. To enable this service, please visit your billing and upgrade to another plan with Auto Cancellation. + ${fmt.off(arg1.link)}` }, CLOUD_AUTO_CANCEL_MISMATCH: (arg1: {runUrl: string}) => { @@ -371,6 +380,7 @@ export const AllCypressErrors = { })} The first setting of --auto-cancel-after-failures for any given run takes precedent. + https://on.cypress.io/auto-cancellation-mismatch` }, DEPRECATED_BEFORE_BROWSER_LAUNCH_ARGS: () => { @@ -510,9 +520,9 @@ export const AllCypressErrors = { This error will not affect or change the exit code.` }, - CLOUD_CANNOT_UPLOAD_RESULTS: (apiErr: Error) => { + CLOUD_CANNOT_UPLOAD_ARTIFACTS: (apiErr: Error) => { return errTemplate`\ - Warning: We encountered an error while uploading results from your run. + Warning: We encountered an error while uploading screenshots & videos from your run. These results will not be recorded. diff --git a/packages/errors/test/unit/visualSnapshotErrors_spec.ts b/packages/errors/test/unit/visualSnapshotErrors_spec.ts index 829f2ee8cb58..e5f0b656decd 100644 --- a/packages/errors/test/unit/visualSnapshotErrors_spec.ts +++ b/packages/errors/test/unit/visualSnapshotErrors_spec.ts @@ -325,7 +325,14 @@ describe('visual error templates', () => { default: [err], } }, - VIDEO_POST_PROCESSING_FAILED: () => { + VIDEO_CAPTURE_FAILED: () => { + const err = makeErr() + + return { + default: [err], + } + }, + VIDEO_COMPRESSION_FAILED: () => { const err = makeErr() return { @@ -618,7 +625,7 @@ describe('visual error templates', () => { default: [], } }, - CLOUD_CANNOT_UPLOAD_RESULTS: () => { + CLOUD_CANNOT_UPLOAD_ARTIFACTS: () => { const err = makeApiErr() return { diff --git a/packages/example/package.json b/packages/example/package.json index 7a0e5951f35e..3c3fe4d62437 100644 --- a/packages/example/package.json +++ b/packages/example/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "cross-env": "6.0.3", - "cypress-example-kitchensink": "1.16.0", + "cypress-example-kitchensink": "1.17.1", "gh-pages": "5.0.0", "gulp": "4.0.2", "gulp-clean": "0.4.0", diff --git a/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Project.ts b/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Project.ts index 06b3435c5d31..fba7edafd867 100644 --- a/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Project.ts +++ b/packages/frontend-shared/cypress/support/mock-graphql/stubgql-Project.ts @@ -29,6 +29,7 @@ export const createTestCurrentProject = (title: string, currentProject: Partial< return { ...globalProject, __typename: 'CurrentProject', + savedState: {}, isCTConfigured: true, serveConfig: {}, isE2EConfigured: true, diff --git a/packages/frontend-shared/package.json b/packages/frontend-shared/package.json index d873f7ce25f2..befa473d1038 100644 --- a/packages/frontend-shared/package.json +++ b/packages/frontend-shared/package.json @@ -18,15 +18,15 @@ }, "dependencies": {}, "devDependencies": { - "@antfu/utils": "^0.3.0", - "@cypress-design/css": "^0.11.0", + "@antfu/utils": "^0.7.0", + "@cypress-design/css": "^0.13.3", "@graphql-typed-document-node/core": "^3.1.0", "@headlessui/vue": "1.4.0", "@iconify/json": "1.1.368", "@iconify/vue": "3.0.0-beta.1", "@intlify/unplugin-vue-i18n": "0.10.0", "@percy/core": "^1.0.0-beta.48", - "@percy/cypress": "^3.1.0", + "@percy/cypress": "^3.1.2", "@testing-library/cypress": "9.0.0", "@toycode/markdown-it-class": "1.2.3", "@types/faker": "5.5.8", diff --git a/packages/frontend-shared/src/assets/icons/illustration-chart_x120.svg b/packages/frontend-shared/src/assets/icons/illustration-chart_x120.svg deleted file mode 100644 index 1dfd8689c224..000000000000 --- a/packages/frontend-shared/src/assets/icons/illustration-chart_x120.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/frontend-shared/src/assets/icons/illustration-debug_x120.svg b/packages/frontend-shared/src/assets/icons/illustration-debug_x120.svg deleted file mode 100644 index cd6906b1c22e..000000000000 --- a/packages/frontend-shared/src/assets/icons/illustration-debug_x120.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/packages/frontend-shared/src/assets/icons/illustration-gear_x120.svg b/packages/frontend-shared/src/assets/icons/illustration-gear_x120.svg deleted file mode 100644 index 9400a40d99de..000000000000 --- a/packages/frontend-shared/src/assets/icons/illustration-gear_x120.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/launchpad/src/images/logos/angular.svg b/packages/frontend-shared/src/assets/logos/angular.svg similarity index 100% rename from packages/launchpad/src/images/logos/angular.svg rename to packages/frontend-shared/src/assets/logos/angular.svg diff --git a/packages/launchpad/src/images/logos/nextjs.svg b/packages/frontend-shared/src/assets/logos/nextjs.svg similarity index 100% rename from packages/launchpad/src/images/logos/nextjs.svg rename to packages/frontend-shared/src/assets/logos/nextjs.svg diff --git a/packages/launchpad/src/images/logos/nuxt.svg b/packages/frontend-shared/src/assets/logos/nuxt.svg similarity index 100% rename from packages/launchpad/src/images/logos/nuxt.svg rename to packages/frontend-shared/src/assets/logos/nuxt.svg diff --git a/packages/launchpad/src/images/logos/react.svg b/packages/frontend-shared/src/assets/logos/react.svg similarity index 100% rename from packages/launchpad/src/images/logos/react.svg rename to packages/frontend-shared/src/assets/logos/react.svg diff --git a/packages/launchpad/src/images/logos/svelte.svg b/packages/frontend-shared/src/assets/logos/svelte.svg similarity index 100% rename from packages/launchpad/src/images/logos/svelte.svg rename to packages/frontend-shared/src/assets/logos/svelte.svg diff --git a/packages/launchpad/src/images/logos/vite.svg b/packages/frontend-shared/src/assets/logos/vite.svg similarity index 100% rename from packages/launchpad/src/images/logos/vite.svg rename to packages/frontend-shared/src/assets/logos/vite.svg diff --git a/packages/launchpad/src/images/logos/vue.svg b/packages/frontend-shared/src/assets/logos/vue.svg similarity index 100% rename from packages/launchpad/src/images/logos/vue.svg rename to packages/frontend-shared/src/assets/logos/vue.svg diff --git a/packages/launchpad/src/images/logos/webpack.svg b/packages/frontend-shared/src/assets/logos/webpack.svg similarity index 100% rename from packages/launchpad/src/images/logos/webpack.svg rename to packages/frontend-shared/src/assets/logos/webpack.svg diff --git a/packages/frontend-shared/src/components/Alert.cy.tsx b/packages/frontend-shared/src/components/Alert.cy.tsx index 0107736697cf..57f9c9133d21 100644 --- a/packages/frontend-shared/src/components/Alert.cy.tsx +++ b/packages/frontend-shared/src/components/Alert.cy.tsx @@ -38,18 +38,6 @@ const prefixIcon = () => const suffixIcon = () => describe('', () => { - describe('classes', () => { - it('can change the text and background color for the alert', () => { - cy.mount(() => - (
- test - test -
)) - - cy.percySnapshot() - }) - }) - describe('title', () => { it('can accept slot as title slot', () => { cy.mount(() => (', () => { }) }) -describe('playground', () => { - it('renders', () => { +describe('', () => { + it('renders various alerts with customizations', () => { const { modelValue, methods } = makeDismissibleProps() cy.mount(() => { @@ -259,11 +247,12 @@ describe('playground', () => { {...methods}>Close me, please! A notice. Default alert + test + test ) }) - cy.contains('Coffee, please').should('be.visible') cy.percySnapshot() }) }) diff --git a/packages/frontend-shared/src/components/Alert.vue b/packages/frontend-shared/src/components/Alert.vue index 9bd1e6fe8a9f..75f678035cd8 100644 --- a/packages/frontend-shared/src/components/Alert.vue +++ b/packages/frontend-shared/src/components/Alert.vue @@ -23,7 +23,7 @@ :title="title" :header-class="`${props.headerClass} ${canCollapse ? 'group-hocus:underline' : ''}`" :prefix-icon="prefix?.icon" - :prefix-icon-class="open ? prefix?.classes + ' rotate-180' : prefix?.classes" + :prefix-icon-class="(open && collapsible) ? prefix?.classes + ' rotate-180' : prefix?.classes" :suffix-icon-aria-label="props.dismissible ? t('components.alert.dismissAriaLabel') : ''" :suffix-icon="props.dismissible ? DeleteIcon : null" :suffix-button-class="classes.suffixButtonClass" @@ -73,7 +73,7 @@ diff --git a/packages/frontend-shared/src/gql-components/HeaderBarContent.cy.tsx b/packages/frontend-shared/src/gql-components/HeaderBarContent.cy.tsx index b4e46bea0903..de8c012a7faa 100644 --- a/packages/frontend-shared/src/gql-components/HeaderBarContent.cy.tsx +++ b/packages/frontend-shared/src/gql-components/HeaderBarContent.cy.tsx @@ -2,7 +2,7 @@ import { HeaderBar_HeaderBarContentFragmentDoc } from '../generated/graphql-test import HeaderBarContent from './HeaderBarContent.vue' import { defaultMessages } from '@cy/i18n' import { CloudUserStubs } from '@packages/graphql/test/stubCloudTypes' -import { useLoginConnectStore } from '../store/login-connect-store' +import { useUserProjectStatusStore } from '../store/user-project-status-store' const text = defaultMessages.topNav @@ -22,8 +22,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( render: (gqlVal) =>
, }) - cy.percySnapshot('before browsers open') - cy.findByTestId('top-nav-active-browser') .should('be.visible') .click() @@ -63,10 +61,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( }) describe('breadcrumbs', () => { - afterEach(() => { - cy.percySnapshot() - }) - context('with current project', () => { const currentProject = { title: 'app', @@ -94,8 +88,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( cy.get('.truncate').contains('application-program/hard-drive-parse').should('be.visible') - cy.percySnapshot() - cy.get('.truncate').realHover() cy.get('.v-popper__popper--shown').contains('application-program/hard-drive-parse') }) @@ -134,7 +126,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( mountFragmentWithData() cy.findByTestId('top-nav-active-browser').should('not.exist') - cy.percySnapshot() cy.contains('button', text.docsMenu.docsHeading).click() cy.wrap(Object.values(text.docsMenu)).each((menuItem) => { @@ -143,15 +134,15 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( } }) - cy.percySnapshot() cy.get('body').click() cy.contains('a', text.docsMenu.firstTest).should('not.be.visible') - cy.percySnapshot('after click') }) it('docs menu has expected links with no current project', () => { mountFragmentWithData({ currentProject: null }) + cy.contains('a', 'Projects').should('not.exist') + // we render without a current project to validate ciSetup and fasterTests links // because outside of global mode, those are buttons that trigger popups // so this way we can assert all links at once. @@ -189,10 +180,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( }) }) - afterEach(() => { - cy.percySnapshot() - }) - // https://github.com/cypress-io/cypress/issues/21842 it('shows docs menu correctly on small viewports', () => { // Simulate the small viewport. @@ -203,6 +190,8 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( // docs menu flex direction is column when viewport width is small cy.findByTestId('docs-menu-container').should('have.css', 'flex-direction', 'column') + + cy.percySnapshot() }) it('shows docs menu correctly on wider viewports', () => { @@ -214,6 +203,7 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( // docs menu flex direction is row when viewport width is big enough. cy.findByTestId('docs-menu-container').should('have.css', 'flex-direction', 'row') + cy.percySnapshot() }) }) @@ -237,7 +227,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( }) cy.contains('a', '8.7.0').should('be.visible').and('have.attr', 'href', 'https://on.cypress.io/changelog#8-7-0') - cy.percySnapshot() }) it('shows hint and modal to upgrade to latest version of cypress', () => { @@ -278,9 +267,7 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( ), }) - cy.contains('v8.6.0 • Upgrade').should('be.visible') - cy.percySnapshot('before upgrade click') - cy.contains('v8.6.0 • Upgrade').click() + cy.contains('v8.6.0 • Upgrade').should('be.visible').click() cy.findByTestId('latest-version').contains('8.7.0') cy.findByTestId('current-version').contains('8.6.0') cy.findByTestId('update-hint').should('be.visible') @@ -290,16 +277,17 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( cy.contains(`${defaultMessages.topNav.updateCypress.title} 8.7.0`).should('be.visible') cy.contains('test-project').should('be.visible') cy.findByDisplayValue('yarn add -D cypress@8.7.0').should('be.visible') - cy.percySnapshot('after upgrade modal open') + cy.get('p').contains('You are currently running Version 8.6.0 of Cypress. To upgrade to the latest version for your project, first close this app, then paste the command below into your terminal:') cy.get('body').type('{esc}') // dismiss modal with keyboard cy.contains(`${defaultMessages.topNav.updateCypress.title} 8.7.0`).should('not.exist') + cy.percySnapshot() }) it('the logged in state is correctly presented in header', () => { - const loginConnectStore = useLoginConnectStore() + const userProjectStatusStore = useUserProjectStatusStore() - loginConnectStore.setUserFlag('isLoggedIn', true) + userProjectStatusStore.setUserFlag('isLoggedIn', true) const cloudViewer = { ...CloudUserStubs.me, @@ -313,7 +301,7 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( fullName: 'Tester Test', } - loginConnectStore.setUserData(cloudViewer) + userProjectStatusStore.setUserData(cloudViewer) cy.mountFragment(HeaderBar_HeaderBarContentFragmentDoc, { onResult: (result) => { @@ -339,14 +327,9 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( cy.contains('Project').should('not.exist') cy.contains('Test Page').should('be.visible') - cy.percySnapshot() }) describe('prompts', () => { - afterEach(() => { - cy.percySnapshot() - }) - describe('the CI prompt', () => { context('opens on click', () => { beforeEach(() => { @@ -360,7 +343,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( it('opens on menu item click', () => { cy.contains(defaultMessages.topNav.docsMenu.prompts.ci1.description).should('be.visible') - cy.percySnapshot() }) it('is dismissible from X icon', () => { @@ -486,7 +468,6 @@ describe('', { viewportWidth: 1000, viewportHeight: 750 }, ( }) it('opens on menu item click', () => { - cy.percySnapshot() cy.contains(defaultMessages.topNav.docsMenu.prompts.orchestration1.title).should('be.visible') cy.contains('Getting Started').should('not.exist') }) diff --git a/packages/frontend-shared/src/gql-components/HeaderBarContent.vue b/packages/frontend-shared/src/gql-components/HeaderBarContent.vue index a9f91d5b430e..90532a9fdd6d 100644 --- a/packages/frontend-shared/src/gql-components/HeaderBarContent.vue +++ b/packages/frontend-shared/src/gql-components/HeaderBarContent.vue @@ -94,18 +94,18 @@ @clear-force-open="isForceOpenAllowed = false" > -
+