Skip to content

Latest commit

 

History

History
492 lines (317 loc) · 41.7 KB

CHANGELOG.md

File metadata and controls

492 lines (317 loc) · 41.7 KB

13.1.0

Released 09/12/2023 (PENDING)

Features:

  • Introduces a status icon representing the latest test run in the Sidebar for the Runs Page. Addresses #27206.

Bugfixes:

13.0.0

Released 08/29/2023

Breaking Changes:

  • The video configuration option now defaults to false. Addresses #26157.
  • The videoCompression configuration option now defaults to false. Addresses #26160.
  • The videoUploadOnPasses configuration option has been removed. Please see our screenshots & videos guide on how to accomplish similar functionality. Addresses #26899.
  • Requests for assets at relative paths for component testing are now correctly forwarded to the dev server. Fixes #26725.
  • The cy.readFile() command is now retry-able as a query command. This should not affect any tests using it; the functionality is unchanged. However, it can no longer be overwritten using Cypress.Commands.overwrite(). Addressed in #25595.
  • The current spec path is now passed from the AUT iframe using a query parameter rather than a path segment. This allows for requests for assets at relative paths to be correctly forwarded to the dev server. Fixes #26725.
  • The deprecated configuration option nodeVersion has been removed. Addresses #27016.
  • The properties and values returned by the Module API and included in the arguments of handlers for the after:run and after:spec have been changed to be more consistent. Addresses #23805.
  • For Cypress Cloud runs with Test Replay enabled, the Cypress Runner UI is now hidden during the run since the Runner will be visible during Test Replay. As such, if video is recorded (which is now defaulted to false) during the run, the Runner will not be visible. In addition, if a runner screenshot (cy.screenshot({ capture: runner })) is captured, it will no longer contain the Runner.
  • The browser and browser page unexpectedly closing in the middle of a test run are now gracefully handled. Addressed in #27592.
  • Automation performance is now improved by switching away from websockets to direct CDP calls for Chrome and Electron browsers. Addressed in #27592.
  • Edge cases where cy.intercept() would not properly intercept have been addressed. Addressed in #27592.
  • Node 14 support has been removed and Node 16 support has been deprecated. Node 16 may continue to work with Cypress v13, but will not be supported moving forward to closer coincide with Node 16's end-of-life schedule. It is recommended that users update to at least Node 18.
  • The minimum supported Typescript version is 4.x.

Features:

  • Consolidates and improves terminal output when uploading test artifacts to Cypress Cloud. Addressed in #27402

Bugfixes:

  • Fixed an issue where Cypress's internal tsconfig would conflict with properties set in the user's tsconfig.json such as module and moduleResolution. Fixes #26308 and #27448.
  • Clarified Svelte 4 works correctly with Component Testing and updated dependencies checks to reflect this. It was incorrectly flagged as not supported. Fixes #27465.
  • Resolve the process/browser global inside @cypress/webpack-batteries-included-preprocessor to resolve to process/browser.js in order to explicitly provide the file extension. File resolution must include the extension for .mjs and .js files inside ESM packages in order to resolve correctly. Fixes#27599.
  • Fixed an issue where the correct pnp process was not being discovered. Fixes #27562.
  • Fixed incorrect type declarations for Cypress and Chai globals that asserted them to be local variables of the global scope rather than properties on the global object. Fixes #27539. Fixed in #27540.
  • Dev Servers will now respect and use the port configuration option if present. Fixes #27675.

Dependency Updates:

12.17.4

Released 08/15/2023

Bugfixes:

  • Fixed an issue where having cypress.config in a nested directory would cause problems with locating the component-index.html file when using component testing. Fixes #26400.

Dependency Updates:

12.17.3

Released 08/01/2023

Bugfixes:

  • Fixed an issue where unexpected branch names were being recorded for cypress runs when executed by GitHub Actions. The HEAD branch name will now be recorded by default for pull request workflows if a branch name cannot otherwise be detected from user overrides or from local git data. Fixes #27389.

Performance:

  • Fixed an issue where unnecessary requests were being paused. No longer sends X-Cypress-Is-XHR-Or-Fetch header and infers resource type off of the server pre-request object. Fixes #26620 and #26622.

12.17.2

Released 07/20/2023

Bugfixes:

  • Fixed an issue where commands would fail with the error must only be invoked from the spec file or support file if their arguments were mutated. Fixes #27200.
  • Fixed an issue where cy.writeFile() would erroneously fail with the error cy.writeFile() must only be invoked from the spec file or support file. Fixes #27097.
  • Fixed an issue where web workers could not be created within a spec. Fixes #27298.

12.17.1

Released 07/10/2023

Bugfixes:

  • Fixed invalid stored preference when enabling in-app notifications that could cause the application to crash. Fixes #27228.
  • Fixed an issue with the Typescript types of cy.screenshot(). Fixed in #27130.

Dependency Updates:

12.17.0

Released 07/05/2023

Features:

  • Cypress Cloud users can now receive desktop notifications about their runs, including when one starts, finishes, or fails. Addresses #26686.

Bugfixes:

  • Fixed issues where commands would fail with the error must only be invoked from the spec file or support file. Fixes #27149 and #27163.
  • Fixed a regression introduced in Cypress 12.12.0 where Cypress may fail to reconnect to the Chrome DevTools Protocol in Electron. Fixes #26900.
  • Fixed an issue where chrome was not recovering from browser crashes properly. Fixes #24650.
  • Fixed a race condition that was causing a GraphQL error to appear on the Debug page when viewing a running Cypress Cloud build. Fixed in #27134.
  • Fixed a race condition in electron where the test window exiting prematurely during the browser launch process was causing the whole test run to fail. Addressed in #27167.
  • Fixed minor issues with Typescript types in the CLI. Fixes #24110.
  • Fixed an issue where a value for the Electron debug port would not be respected if defined using the ELECTRON_EXTRA_LAUNCH_ARGS environment variable. Fixes #26711.

Dependency Updates:

  • Update dependency semver to ^7.5.3. Addressed in #27151.

12.16.0

Released 06/26/2023

Features:

  • Added support for Angular 16.1.0 in Cypress Component Testing. Addresses #27049.

Bugfixes:

  • Fixed an issue where certain commands would fail with the error must only be invoked from the spec file or support file when invoked with a large argument. Fixes #27099.

12.15.0

Released 06/20/2023

Features:

  • Added support for running Cypress tests with Chrome's new --headless=new flag. Chrome versions 112 and above will now be run in the headless mode that matches the headed browser implementation. Addresses #25972.
  • Cypress can now test pages with targeted Content-Security-Policy and Content-Security-Policy-Report-Only header directives by specifying the allow list via the experimentalCspAllowList configuration option. Addresses #1030. Addressed in #26483
  • The videoCompression configuration option now accepts both a boolean or a Constant Rate Factor (CRF) number between 1 and 51. The videoCompression default value is still 32 CRF and when videoCompression is set to true the default of 32 CRF will be used. Addresses #26658.
  • The Cypress Cloud data shown on the Specs page and Runs page will now reflect Cloud Runs that match the current Git tree if Git is being used. Addresses #26693.

Bugfixes:

  • Fixed an issue where video output was not being logged to the console when videoCompression was turned off. Videos will now log to the terminal regardless of the compression value. Addresses #25945.

Dependency Updates:

12.14.0

Released 06/07/2023

Features:

  • A new testing type switcher has been added to the Spec Explorer to make it easier to move between E2E and Component Testing. An informational overview of each type is displayed if it hasn't already been configured to help educate and onboard new users to each testing type. Addresses #26448, #26836 and #26837.

Bugfixes:

Dependency Updates:

  • Upgraded find-process from 1.4.1 to 1.4.7 to address this Synk security vulnerability. Addressed in #26906.
  • Upgraded firefox-profile from 4.0.0 to 4.3.2 to address security vulnerabilities within sub-dependencies. Addressed in #26912.

12.13.0

Released 05/23/2023

Features:

  • Adds Git-related messages for the Runs page and Debug page when users aren't using Git or there are no recorded runs for the current branch. Addresses #26680.

Bugfixes:

  • Reverted #26452 which introduced a bug that prevents users from using End to End with Yarn 3. Fixed in #26735. Fixes #26676.
  • Moved types condition to the front of package.json#exports since keys there are meant to be order-sensitive. Fixed in #26630.
  • Fixed an issue where newly-installed dependencies would not be detected during Component Testing setup. Addresses #26685.
  • Fixed a UI regression that was flashing an "empty" state inappropriately when loading the Debug page. Fixed in #26761.
  • Fixed an issue in Component Testing setup where TypeScript version 5 was not properly detected. Fixes #26204.

Misc:

  • Updated styling & content of Cypress Cloud slideshows when not logged in or no runs have been recorded. Addresses #26181.
  • Changed the nomenclature of 'processing' to 'compressing' when terminal video output is printed during a run. Addresses #26657.
  • Changed the nomenclature of 'Upload Results' to 'Uploading Screenshots & Videos' when terminal output is printed during a run. Addresses #26759.

12.12.0

Released 05/09/2023

Features:

  • Added a new informational banner to help get started with component testing from an existing end-to-end test suite. Addresses #26511.

Bugfixes:

  • Fixed an issue in Electron where devtools gets out of sync with the DOM occasionally. Addresses #15932.
  • Updated the Chromium renderer process crash message to be more terse. Addressed in #26597.
  • Fixed an issue with CYPRESS_DOWNLOAD_PATH_TEMPLATE regex to allow multiple replacements. Addresses #23670.
  • Moved types condition to the front of package.json#exports since keys there are meant to be order-sensitive. Fixed in #26630.

Dependency Updates:

12.11.0

Released 04/26/2023

Features:

  • Adds Component Testing support for Angular 16. Addresses #26044.
  • The run navigation component on the Debug page will now display a warning message if there are more relevant runs than can be displayed in the list. Addresses #26288.

Bugfixes:

  • Fixed an issue where setting videoCompression to 0 would cause the video output to be broken. 0 is now treated as false. Addresses #5191 and #24595.
  • Fixed an issue on the Debug page where the passing run status would appear even if the Cypress Cloud organization was over its monthly test result limit. Addresses #26528.

Misc:

  • Cleaned up our open telemetry dependencies, reducing the size of the open telemetry modules. Addressed in #26522.

Dependency Updates:

  • Upgraded vue from 3.2.31 to 3.2.47. Addressed in #26555.

12.10.0

Released 04/17/2023

Features:

Bugfixes:

  • Capture the Azure CI provider's environment variable SYSTEM_PULLREQUEST_PULLREQUESTNUMBER to display the linked PR number in the Cloud. Addressed in #26215.
  • Fixed an issue in the onboarding wizard where project framework & bundler would not be auto-detected when opening directly into component testing mode using the --component CLI flag. Fixes #22777 and #26388.
  • Updated to use the SEMAPHORE_GIT_WORKING_BRANCH Semphore CI environment variable to correctly associate a Cloud run to the current branch. Previously this was incorrectly associating a run to the target branch. Fixes #26309.
  • Fix an edge case in Component Testing where a custom baseUrl in tsconfig.json for Next.js 13.2.0+ is not respected. This was partially fixed in #26005, but an edge case was missed. Fixes #25951.
  • Fixed an issue where click events fired on .type('{enter}') did not propagate through shadow roots. Fixes #26392.

Misc:

  • Removed unintentional debug logs. Addressed in #26411.
  • Improved styling on the Runs Page. Addresses #26180.

Dependency Updates:

12.9.0

Released 03/28/2023

Features:

  • The Debug page now allows for navigating between all runs recorded for a commit. Addresses #25899 and #26018.

Bugfixes:

  • Fixed a compatibility issue so that component test projects can use Vite version 4.2.0 and greater. Fixes #26138.
  • Fixed an issue where cy.intercept() added an additional content-length header to spied requests that did not set a content-length header on the original request. Fixes #24407.
  • Changed the way that Git hashes are loaded so that non-relevant runs are excluded from the Debug page. Fixes #26058.
  • Corrected the .type() command to account for shadow root elements when determining whether or not focus needs to be simulated before typing. Fixes #26198.
  • Fixed an issue where an incorrect working directory could be used for Git operations on Windows. Fixes #23317.
  • Capture the Buildkite CI provider's environment variable BUILDKITE_RETRY_COUNT to handle CI retries in the Cloud. Addressed in #25750.

Misc:

  • Made some minor styling updates to the Debug page. Addresses #26041.

12.8.1

Released 03/15/2023

Bugfixes:

  • Fixed a regression in Cypress 10 where the reporter auto-scroll configuration inside user preferences was unintentionally being toggled off. User's must now explicitly enable/disable auto-scroll under user preferences, which is enabled by default. Fixes #24171 and #26113.

Dependency Updates:

12.8.0

Released 03/14/2023

Features:

  • The Debug page is now able to show real-time results from in-progress runs. Addresses #25759.
  • Added the ability to control whether a request is logged to the command log via cy.intercept() by passing log: false or log: true. Addresses #7362.
    • This can be used to override Cypress's default behavior of logging all XHRs and fetches, see the example.
  • It is now possible to control the number of connection attempts to the browser using the CYPRESS_CONNECT_RETRY_THRESHOLD Environment Variable. Learn more here. Addressed in #25848.

Bugfixes:

  • Fixed an issue where using Cypress.require() would throw the error Cannot find module 'typescript'. Fixes #25885.
  • The before:spec API was updated to correctly support async event handlers in run mode. Fixes #24403.
  • Updated the Component Testing community framework definition detection logic to take into account monorepo structures that hoist dependencies. Fixes #25993.
  • The onboarding wizard for Component Testing will now detect installed dependencies more reliably. Fixes #25782.
  • Fixed an issue where Angular components would sometimes be mounted in unexpected DOM locations in component tests. Fixes #25956.
  • Fixed an issue where Cypress component testing would fail to work with Next.js 13.2.1. Fixes #25951.
  • Fixed an issue where migrating a project from a version of Cypress earlier than 10.0.0 could fail if the project's testFiles configuration was an array of globs. Fixes #25947.

Misc:

  • Removed "New" badge in the navigation bar for the debug page icon. Addresses #25925.
  • Removed inline "Connect" buttons within the Specs Explorer. Addresses #25926.
  • Added an icon for "beta" versions of the Chrome browser. Addresses #25968.

Dependency Updates:

12.7.0

Released 02/24/2023

Features:

  • It is now possible to set hostOnly cookies with cy.setCookie() for a given domain. Addresses #16856 and #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. Implemented in #25780 and closes #25638.
  • Added a Debug Page tutorial slideshow for projects that are not connected to Cypress Cloud. Addresses #25768.
  • Improved various error message around interactions with the Cypress cloud. Implemented in #25837
  • Updated the "new" status badge for the Debug page navigation link to be less noticeable when the navigation is collapsed. Addresses #25739.

Bugfixes:

  • Fixed various bugs when recording to the cloud. Fixed in #25837
  • 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, #25205 and #25495.
  • Fixed an issue where cookies weren't being synced when the application was stable. Fixed in #25855. Fixes #25835.
  • Added missing TypeScript type definitions for the cy.reload() command. Addressed in #25779.
  • Ensure Angular components are mounted inside the correct element. Fixes #24385.
  • Fix a bug where files outside the project root in a monorepo are not correctly served when using Vite. Addressed in #25801.
  • Fixed an issue where using cy.intercept's req.continue() with a non-function parameter would not provide an appropriate error message. Fixed in #25884.
  • Fixed an issue where Cypress would erroneously launch and connect to multiple browser instances. Fixes #24377.

Misc:

  • Made updates to the way that the Debug Page header displays information. Addresses #25796 and #25798.

12.6.0

Released 02/15/2023

Features:

  • Added a new CLI flag, called --auto-cancel-after-failures, that overrides the project-level "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.
  • It is now possible to overwrite query commands using Cypress.Commands.overwriteQuery. Addressed in #25078.
  • Added Cypress.require() for including dependencies within the cy.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() callback, but even for spec files that did not use them. Addresses #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.

Bugfixes:

  • When a Cloud user is apart of multiple Cloud organizations, the Connect to Cloud setup now shows the correct organizational prompts when connecting a new project. Fixes #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.
  • 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.
  • Fixed an issue in middleware where error-handling code could itself generate an error and fail to report the original issue. Fixes #22825.
  • Fixed an regression introduced in Cypress 12.3.0 where custom browsers that relied on process environment variables were not found on macOS arm64 architectures. Fixed in #25753.

Misc:

  • Improved the UI of the Debug page. Addresses #25664, #25669, #25665, #25666, and #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.

Dependency Updates:

12.5.1

Released 02/02/2023

Bugfixes:

Dependency Updates:

  • Upgraded simple-git from 3.15.0 to 3.16.0 to address this security vulnerability where Remote Code Execution (RCE) via the clone(), pull(), push() and listRemote() methods due to improper input sanitization was possible. Addressed in #25603.

12.5.0

Released 01/31/2023

Features:

  • Easily debug failed CI test runs recorded to the Cypress Cloud from your local Cypress app with the new Debug page. Please leave any feedback here. Your feedback will help us make decisions to improve the Debug experience. For more details, see our blog post. Addressed in #25488.

Performance:

  • Improved memory consumption in run mode by removing reporter logs for successful tests. Fixes #25230.

Bugfixes:

  • Fixed an issue where alternative Microsoft Edge Beta, Canary, and Dev binary versions were not being discovered by Cypress. Fixes #25455.

Dependency Updates:

  • Upgraded underscore.string from 3.3.5 to 3.3.6 to reference rebuilt assets after security patch to fix regular expression DDOS exploit. Addressed in #25574.

12.4.1

Released 01/27/2023

Bugfixes:

  • Fixed a regression from Cypress 12.4.0 where Cypress was not exiting properly when running multiple Component Testing specs in electron in run mode. Fixes #25568.

Dependency Updates:

  • Upgraded ua-parser-js from 0.7.24 to 0.7.33 to address this security vulnerability where crafting a very-very-long user-agent string with specific pattern, an attacker can turn the script to get stuck processing for a very long time which results in a denial of service (DoS) condition. Addressed in #25561.

12.4.0

Released 1/24/2023

Features:

  • Added official support for Vite 4 in component testing. Addresses #24969.
  • Added new experimentalMemoryManagement configuration option to improve memory management in Chromium-based browsers. Enable this option with experimentalMemoryManagement=true if you have experienced "Out of Memory" issues. Addresses #23391.
  • Added new experimentalSkipDomainInjection configuration option to disable Cypress from setting document.domain on injection, allowing users to test Salesforce domains. If you believe you are having document.domain issues, please see the experimentalSkipDomainInjection guide. This config option is end-to-end only. Addresses #2367, #23958, #24290, and #24418.
  • The .as command now accepts an options argument, allowing an alias to be stored as type "query" or "static" value. This is stored as "query" by default. Addresses #25173.
  • The cy.log() command will now display a line break where the \n character is used. Addresses #24964.
  • component.specPattern now utilizes a JSX/TSX file extension when generating a new empty spec file if project contains at least one file with those extensions. This applies only to component testing and is skipped if component.specPattern has been configured to exclude files with those extensions. Addresses #24495.
  • Added support for the data-qa selector in the Selector Playground in addition to data-cy, data-test and data-testid. Addresses #25305.

Bugfixes:

  • Fixed an issue where component tests could incorrectly treat new major versions of certain dependencies as supported. Fixes #25379.
  • Fixed an issue where new lines or spaces on new lines in the Command Log were not maintained. Fixes #23679 and #24964.
  • Fixed an issue where Angular component testing projects would fail to initialize if an unsupported browserslist entry was specified in the project configuration. Fixes #25312.

Misc

  • Video output link in cypress run mode has been added to it's own line to make the video output link more easily clickable in the terminal. Addresses #23913.