NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3338 most downloaded on npm
Cypress is a next generation front end testing tool built for the modern web
Last release 2 days ago
15 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
11 years old
293 releases · first in 2015
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-3
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-3
Released Aug 14, 2024
Bugfixes:
A console error will no longer display in Chrome about a deprecated unload call originating from jQuery. Addressed in #29944 .
Fixed an issue where certain Test Replay upload error messages were too vague. Connection failures now report the precise system error, and the stall error message is reported rather than the vague, "The user aborted a request." Addressed in #29959 .
Misc:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-2
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-2
One column per quarter.
Released Jul 31, 2024
Performance:
Fixed a memory leak with command logs with Test Replay enabled. Addressed in #29939 .
Improved performance of reduce in a method within our proxy. Addressed in #29887 .
Bugfixes:
Dependency Updates:
Updated @cypress/request from 3.0.0 to 3.0.1 . Addresses #29863 .
Updated chrome-remote-interface from 0.33.0 to 0.33.2 . Addressed in #29932 .
Updated mime from 2.4.4 to 2.6.0 . Addressed in #29870 .
Updated strip-ansi from 6.0.0 to 6.0.1 . Addressed in #29931 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-1
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-1
Released Jul 16, 2024
Bugfixes:
Fixed an issue where unhandled WebSocket connection closed exceptions would be thrown when CDP connections rapidly connect, disconnect, and connect again while there are pending commands. Fixes #29572 .
CLI output properly displays non-JSON response bodies when a Test Replay upload attempt returns a non-JSON response body for a non-200 status code. Addressed in #29801 .
Fixed an issue where the ReadStream used to upload a Test Replay recording could erroneously be re-used when retrying in cases of retryable upload failures. Fixes #29227 .
Fixed an issue where command snapshots were not being captured within the cy.origin() command within Test Replay. Addressed in #29828 .
Dependency Updates:
Updated jquery from 3.1.1 to 3.4.1 . Addresses #29822 . Addressed in #29837 .
Replaced json-lint with json-parse-even-better-errors . This removes the CVE-2021-23358 vulnerability being reported in security scans. Addresses #28207 .
Updated minimatch from 3.0.4 to 3.1.2 . Addressed in #29821 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-13-0
Released Jul 02, 2024
Performance:
Features:
Bugfixes:
Fixed an issue where Chrome launch instances would not recreate the browser CRI client correctly after recovering from an unexpected browser closure. Fixes #27657 . Fixed in #29663 .
Fixed an issue where Firefox 129 (Firefox Nightly) would not launch with Cypress. Fixes #29713 . Fixed in #29720 .
Dependency Updates:
Updated launch-editor from 2.3.0 to 2.8.0 . Addressed in #29770 .
Updated memfs from 3.4.12 to 3.5.3 . Addressed in #29746 .
Updated tmp from 0.2.1 to 0.2.3 . Addresses #29693 .
Updated ws from 5.2.3 to 5.2.4 . Addressed in #29698 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-12-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-12-0
Released Jun 18, 2024
Features:
Bugfixes:
We now trigger input and change events when typing {upArrow} and {downArrow} via .type() on input[type=number] elements. Fixes #29611 .
Fixed an issue where auto scrolling the reporter would sometimes be disabled without the user's intent. Fixes #25084 .
Fixed an issue where inlineSourceMaps was still being used when sourceMaps was provided in a user's TypeScript config for TypeScript version 5. Fixes #26203 .
When capture protocol script fails verification, an appropriate error is now displayed. Previously, an error regarding Test Replay archive location was shown. Addressed in #29603 .
Fixed an issue where receiving HTTP responses with invalid headers raised an error. Now Cypress removes the invalid headers and gives a warning in the console with debug mode on. Fixes #28865 .
Misc:
Dependency Updates:
Updated firefox-profile from 4.3.1 to 4.6.0 . Addressed in #29662 .
Updated typescript from 4.7.4 to 5.3.3 . Addressed in #29568 .
Updated url-parse from 1.5.9 to 1.5.10 . Addressed in #29650 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-11-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-11-0
Released Jun 04, 2024
Performance:
Features:
Added support for Next.js 14 for component testing. Addresses #28185 .
Added an IGNORE_CHROME_PREFERENCES environment variable to ignore Chrome preferences when launching Chrome. Addresses #29330 .
Bugfixes:
Fixed a situation where the Launchpad would hang if the project config had not been loaded when the Launchpad first queries the current project. Fixes #29486 .
Pre-emptively fix behavior with Chrome for when unload events are forcefully deprecated by using pagehide as a proxy. Fixes #29241 .
Misc:
Changelog: https://docs.cypress.io/guides/references/changelog#13-10-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-10-0
Released May 21, 2024
Features:
Bugfixes:
Fixed an issue where orphaned Electron processes were inadvertently terminating the browser's CRI client. Fixes #28397 . Fixed in #29515 .
Fixed an issue where Cypress would use the wrong URL to upload Test Replay recordings when it wasn't able to determine the upload URL. It now displays an error when the upload URL cannot be determined, rather than a "Request Entity Too Large" error. Addressed in #29512 .
Fixed an issue where Cypress was unable to search in the Specs list for files or folders containing numbers. Fixes #29034 .
Fixed an issue setting the x-cypress-file-path header when there are invalid header characters in the file path. Fixes #25839 .
Fixed the display of some command assertions. Fixed in #29517 .
Dependency Updates:
Updated js-cookie from 2.2.1 to 3.0.5 . Addressed in #29497 .
Updated randomstring from 1.1.5 to 1.3.0 . Addressed in #29503 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-9-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-9-0
Released May 07, 2024
Features:
Bugfixes:
Fixed a bug where promises rejected with undefined were failing inside cy.origin() . Addresses #23937 .
We now pass the same default Chromium flags to Electron as we do to Chrome. As a result of this change, the application under test's navigator.webdriver property will now correctly be true when testing in Electron. Fixes #27939 .
Fixed network issues in requests using fetch for users where Cypress is run behind a proxy that performs HTTPS decryption (common among corporate proxies). Fixes #29171 .
Fixed an issue where extra windows weren't being closed between specs in Firefox causing potential issues in subsequent specs. Fixes #29473 .
Misc:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-8-1
Changelog: https://docs.cypress.io/guides/references/changelog#13-8-1
Released Apr 23, 2024
Performance:
Bugfixes:
Fixed a regression introduced in 13.6.0 where Cypress would occasionally exit with status code 1, even when a test run was successful, due to an unhandled WebSocket exception ( Error: WebSocket connection closed ). Addresses #28523 .
Fixed an issue where Cypress would hang on some commands when an invalid timeout option was provided. Fixes #29323 .
Misc:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-8-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-8-0
Released Apr 18, 2024
Features:
Bugfixes:
Misc:
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-3
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-3
Released Apr 11, 2024
Bugfixes:
Fixed an issue where asserts with custom messages weren't displaying properly. Fixes #29167 .
Fixed an issue where Cypress launch arguments were not being escaped correctly with multiple values inside quotes. Fixes #27454 .
Misc:
Updated the Chrome flags to not show the "Enhanced Ad Privacy" dialog. Addresses #29199 .
Suppresses benign warnings that reference Vulkan on GPU-less hosts. Addresses #29085 . Addressed in #29278 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-2
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-2
Released Apr 02, 2024
Performance:
Bugfixes:
Fixed an issue where Cypress was not executing beyond the first spec in cypress run for versions of Firefox 124 and up when a custom user agent was provided. Fixes #29190 .
Fixed a bug where fields using arrays in cypress.config are not correctly processed. Fixes #27103 . Fixed in #27312 .
Fixed a hang where Cypress would run indefinitely while recording to the cloud when CDP disconnects during the middle of a test. Fixes #29209 .
Fixed a bug where option values containing quotation marks could not be selected. Fixes #29213 .
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-1
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-1
Released Mar 21, 2024
Bugfixes:
Fixed an issue where Cypress was not executing beyond the first spec in cypress run for versions of Firefox 124 and up. Fixes #29172 .
Fixed an issue blurring shadow dom elements. Fixed in #29125 .
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-7-0
Released Mar 13, 2024
Features:
Added shadow DOM snapshot support within Test Replay in order to highlight elements correctly within the Cypress reporter. Addressed in #28823 .
Added TypeScript support for Vue 2.7+ . Addresses #28591 .
Adds additional context to error messages displayed when Test Replay artifacts fail to upload. Addressed in #28986 .
Performance:
Fixed a performance regression from 13.6.3 where unhandled service worker requests may not correlate correctly. Fixes #28868 .
Reduces the number of attempts to retry failed Test Replay artifact uploads from 8 to 3, to reduce time spent on artifact upload attempts that will not succeed. Addressed in #28986 .
Bugfixes:
Changed screenshot capture behavior in Chromium to activate the main Cypress tab before capturing. This prevents screenshot capture from timing out in certain situations. Fixed in #29038 . Fixes #5016
Fixed an issue where .click() commands on children of disabled elements would still produce "click" events -- even without { force: true } . Fixes #28788 .
Changed RequestBody type to allow for boolean and null literals to be passed as body values. #28789 .
Misc:
Changed Component Testing scaffolding instruction to pnpm add to add framework dependencies when a project uses pnpm as package manager. Addresses #29052 .
Command messages in the Cypress command logs will now truncate display at 100 lines instead of 50. Fixes #29023 .
Capture the beforeTest timestamp inside the browser for the purposes of accurately determining test start for Test Replay. Addressed in #29061 .
Dependency Updates:
Updated jimp from 0.14.0 to 0.22.12 . Addressed in #29055 .
Updated http-proxy-middleware from 2.0.4 to 2.0.6 . Addressed in #28902 .
Updated signal-exit from 3.0.3 to 3.0.7 . Addressed in #28979 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-6
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-6
Released Feb 22, 2024
Bugfixes:
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-5
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-5
Released Feb 20, 2024
Bugfixes:
Fixed tests hanging when the Chrome browser extension is disabled. Fixes #28392 .
Fixed an issue which caused the browser to relaunch after closing the browser from the Launchpad. Fixes #28852 .
Fixed an issue with the unzip promise never being rejected when an empty error happens. Fixed in #28850 .
Fixed a regression introduced in 13.6.3 where Cypress could crash when processing service worker requests through our proxy. Fixes #28950 .
Fixed incorrect type definition of dom.getContainsSelector . Fixed in #28339 .
Misc:
Improved accessibility of the Cypress App in some areas. Addressed in #28774 .
Changed references of LayerCI to webapp.io. Addressed in #28874 .
Dependency Updates:
Upgraded electron from 25.8.4 to 27.1.3 .
Upgraded bundled Node.js version from 18.15.0 to 18.17.0 .
Upgraded bundled Chromium version from 114.0.5735.289 to 118.0.5993.117 .
Updated buffer from 5.6.0 to 5.7.1 . Addressed in #28934 .
Updated duplexify from 4.1.1 to 4.1.2 . Addressed in #28941 .
Updated is-ci from 3.0.0 to 3.0.1 . Addressed in #28933 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-4
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-4
Released Jan 30, 2024
Performance:
Bugfixes:
Misc:
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-3
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-3
Released Jan 16, 2024
Bugfixes:
Force moduleResolution to node when TypeScript projects are detected to correctly run Cypress. This change should not have a large impact as commonjs is already forced when ts-node is registered. This fix does not impact the ESM TypeScript configuration loader. Fixes #27731 .
No longer wait for additional frames when recording a video for a spec that was skipped by the Cloud due to Auto Cancellation. Fixes #27898 .
Now node_modules will not be ignored if a project path or a provided path to spec files contains it. Fixes #23616 .
Updated display of assertions and commands with a URL argument to escape markdown formatting so that values are displayed as is and assertion values display as bold. Fixes #24960 and #28100 .
When generating assertions via Cypress Studio, the preview of the generated assertions now correctly displays the past tense of 'expected' instead of 'expect'. Fixed in #28593 .
Fixed a regression in 13.6.2 where the body element was not highlighted correctly in Test Replay. Fixed in #28627 .
Correctly sync Cypress.currentRetry with secondary origin so test retries that leverage cy.origin() render logs as expected. Fixes #28574 .
Fixed an issue where some cross-origin logs, like assertions or cy.clock(), were getting too many dom snapshots. Fixes #28609 .
Fixed asset capture for Test Replay for requests that are routed through service workers. This addresses an issue where styles were not being applied properly in Test Replay and cy.intercept() was not working properly for requests in this scenario. Fixes #28516 .
Fixed an issue where visiting an http:// site would result in an infinite reload/redirect loop in Chrome 114+. Fixes #25891 .
Fixed an issue where requests made from extra tabs do not include their original headers. Fixes #28641 .
Fixed an issue where cy.wait() would sometimes throw an error reading a property of undefined when returning responses. Fixes #28233 .
Performance:
Dependency Updates:
Remove dependency on @types/node package. Addresses #28473 .
Updated @cypress/unique-selector to include a performance optimization. It's possible this could improve performance of the selector playground. Addressed in #28571 .
Replace CircularJSON with its successor flatted version 3.2.9 . This resolves decoding issues observed in complex objects sent from the browser. Addressed in #28683 .
Updated better-sqlite3 from 8.7.0 to 9.2.2 to fix macOS Catalina issues. Addresses #28697 .
Misc:
Improved accessibility of some areas of the Cypress App. Addressed in #28628 .
Updated some documentation links to go through on.cypress.io. Addressed in #28623 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-2
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-2
Released Dec 26, 2023
Bugfixes:
Fixed a regression in 13.6.1 where a malformed URI would crash Cypress. Fixes #28521 .
Fixed a regression in 12.4.0 where erroneous <br> tags were displaying in error messages in the Command Log making them less readable. Fixes #28452 .
Performance:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-1
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-1
Released Dec 05, 2023
Bugfixes:
Fixed an issue where pages or downloads opened in a new tab were missing basic auth headers. Fixes #28350 .
Fixed an issue where request logging would default the message to the args of the currently running command even though those args would not apply to the request log and are not displayed. If the args are sufficiently large (e.g. when running the cy.task from the code-coverage plugin) there could be performance/memory implications. Addressed in #28411 .
Fixed an issue where commands would fail with the error must only be invoked from the spec file or support file if the project's baseUrl included basic auth credentials. Fixes #27457 and #28336 .
Fixed an issue where some URLs would timeout in pre-request correlation. Addressed in #28427 .
Cypress will now correctly log errors and debug logs on Linux machines. Fixes #5051 and #24713 .
Misc:
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-6-0
Released Nov 21, 2023
Features:
Added an activity indicator to CLI output when artifacts (screenshots, videos, or Test Replay) are being uploaded to the cloud. Addresses #28239 . Addressed in #28277 .
When artifacts are uploaded to the Cypress Cloud, the duration of each upload will be displayed in the terminal. Addresses #28237 .
Bugfixes:
We now allow absolute paths when setting component.indexHtmlFile in the Cypress config. Fixes #27750 .
Fixed an issue where dynamic intercept aliases now show with alias name instead of "no alias" in driver. Addresses #24653
Fixed an issue where aliasing individual requests with cy.intercept() led to an error when retrieving all of the aliases with cy.get(@alias.all) . Addresses #25448
The URL of the application under test and command error "Learn more" links now open externally instead of in the Cypress-launched browser. Fixes #24572 .
Fixed issue where some URLs would timeout in pre-request correlation. Addressed in #28354 .
Misc:
Browser tabs and windows other than the Cypress tab are now closed between tests in Chromium-based browsers. Addressed in #28204 .
Cypress now ensures the main browser tab is active before running each command in Chromium-based browsers. Addressed in #28334 .
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-5-1
Changelog: https://docs.cypress.io/guides/references/changelog#13-5-1
Released Nov 14, 2023
Bugfixes:
Fixed a regression in 13.5.0 where requests cached within a given spec may take longer to load than they did previously. Addresses #28295 .
Fixed an issue where pages opened in a new tab were missing response headers, causing them not to load properly. Fixes #28293 and #28303 .
We now pass a flag to Chromium browsers to disable default component extensions. This is a common flag passed during browser automation. Fixed in #28294 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-5-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-5-0
Released Nov 08, 2023
Features:
Bugfixes:
Fixed an issue in chromium based browsers, where global style updates can trigger flooding of font face requests in DevTools and Test Replay. This can affect performance due to the flooding of messages in CDP. Fixes #28150 and #28215 .
Fixed a regression in 13.3.3 where Cypress would hang on loading shared workers when using cy.reload to reload the page. Fixes #28248 .
Fixed an issue where network requests made from tabs, or windows other than the main Cypress tab, would be delayed. Fixes #28113 .
Fixed an issue with 'other' targets (e.g. pdf documents embedded in an object tag) not fully loading. Fixes #28228 and #28162 .
Fixed an issue where clicking a link to download a file could cause a page load timeout when the download attribute was missing. Note: download behaviors in experimental WebKit are still an issue. Fixes #14857 .
Fixed an issue to account for canceled and failed downloads to correctly reflect these status in Command log as a download failure where previously it would be pending. Fixed in #28222 .
Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes #27514 .
We now pass a flag to Chromium browsers to disable Chrome translation, both the manual option and the popup prompt, when a page with a differing language is detected. Fixes #28225 .
Stopped processing CDP events at the end of a spec when Test Isolation is off and Test Replay is enabled. Addressed in #28213 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-4-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-4-0
Released Oct 30, 2023
Features:
Bugfixes:
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-3
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-3
Released Oct 24, 2023
Bugfixes:
Fixed a performance regression in 13.3.1 with proxy correlation timeouts and requests issued from web and shared workers. Fixes #28104 .
Fixed a performance problem with proxy correlation when requests get aborted and then get miscorrelated with follow up requests. Addressed in #28094 .
Fixed a regression in 10.0.0 , where search would not find a spec if the file name contains "-" or "_", but search prompt contains " " instead (e.g. search file "spec-file.cy.ts" with prompt "spec file"). Fixes #25303 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-2
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-2
Released Oct 18, 2023
Bugfixes:
Fixed a performance regression in 13.3.1 with proxy correlation timeouts and requests issued from service workers. Fixes #28054 and #28056 .
Fixed an issue where proxy correlation would leak over from a previous spec causing performance problems, cy.intercept problems, and Test Replay asset capturing issues. Addressed in #28060 .
Fixed an issue where redirects of requests that knowingly don't have CDP traffic should also be assumed to not have CDP traffic. Addressed in #28060 .
Fixed an issue with Accept Encoding headers by forcing gzip when no accept encoding header is sent and using identity if gzip is not sent. Fixes #28025 .
Dependency Updates:
Upgraded @babel/core from 7.22.9 to 7.23.2 to address the SNYK-JS-SEMVER-3247795 security vulnerability. Addressed in #28063 .
Upgraded @babel/traverse from 7.22.8 to 7.23.2 to address the SNYK-JS-BABELTRAVERSE-5962462 security vulnerability. Addressed in #28063 .
Upgraded react-docgen from 6.0.0-alpha.3 to 6.0.4 to address the SNYK-JS-BABELTRAVERSE-5962462 security vulnerability. Addressed in #28063 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-1
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-1
Released Oct 11, 2023
Bugfixes:
Fixed an issue where requests were correlated in the wrong order in the proxy. This could cause an issue where the wrong request is used for cy.intercept or assets (e.g. stylesheets or images) may not properly be available in Test Replay. Addressed in #27892 .
Fixed an issue where a crashed Chrome renderer can cause the Test Replay recorder to hang. Addressed in #27909 .
Fixed an issue where multiple responses yielded from calls to cy.wait() would sometimes be out of order. Fixes #27337 .
Fixed an issue where requests were timing out in the proxy. This could cause an issue where the wrong request is used for cy.intercept or assets (e.g. stylesheets or images) may not properly be available in Test Replay. Addressed in #27976 .
Fixed an issue where Test Replay couldn't record tests due to issues involving GLIBC . Fixed deprecation warnings during the rebuild of better-sqlite3. Fixes #27891 and #27902 .
Enables test replay for executed specs in runs that have a spec that causes a browser crash. Addressed in #27786 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-3-0
Released Sep 27, 2023
Features:
Bugfixes:
Fixed an issue where actionability checks trigger a flood of font requests. Removing the font requests has the potential to improve performance and removes clutter from Test Replay. Addressed in #27860 .
Fixed network stubbing not permitting status code 999. Fixes #27567 . Addressed in #27853 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-2-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-2-0
Released Sep 12, 2023
Features:
Bugfixes:
Edge cases where cy.intercept() would not properly intercept and asset response bodies would not properly be captured for Test Replay have been addressed. Addressed in #27771 .
Fixed an issue where enter , keyup , and space events were not triggering click events properly in some versions of Firefox. Addressed in #27715 .
Fixed a regression in 13.0.0 where tests using Basic Authorization can potentially hang indefinitely on chromium browsers. Addressed in #27781 .
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#13-1-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-1-0
Released Aug 31, 2023
Features:
Bugfixes:
Fixed a regression introduced in Cypress 13.0.0 where the Module API , after:run , and after:spec results did not include the stats.skipped field for each run result. Fixes #27694 . Addressed in #27695 .
Individual CDP errors that occur while capturing data for Test Replay will no longer prevent the entire run from being available. Addressed in #27709 .
Fixed an issue where the release date on the v13 landing page was a day behind. Fixed in #27711 .
Fixed an issue where fatal protocol errors would leak between specs causing all subsequent specs to fail to upload protocol information. Fixed in #27720
Updated plist from 3.0.6 to 3.1.0 to address CVE-2022-37616 and CVE-2022-39353 . Fixed in #27710 .
Changelog: https://docs.cypress.io/guides/references/changelog#13-0-0
Changelog: https://docs.cypress.io/guides/references/changelog#13-0-0
Released Aug 29, 2023
Summary:
When recording to Cypress Cloud, users now receive our newest feature: Test Replay . Test Replay brings the debugging experience you know and love from the Cypress app directly into your recorded tests in Cypress Cloud.
Previously, trying to debug failures and flake in CI was painful and time consuming with only videos & screenshots. Test Replay provides a way to inspect the DOM, network events, and console logs of your application from your tests exactly as they ran in CI.
Test Replay is available in all Cypress Cloud plans. To start using Test Replay, simply record a run to Cypress Cloud. Learn more in the Test Replay documentation .
Test Replay now serves as the primary replacement for debugging via video. Video capture and videoCompression of captured video are now set to false by default and videoUploadOnPasses is removed.
Read more about v13.0.0 in our blog post .
Breaking Changes:
info
Refer to the v13 Migration Guide for help migrating your code.
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 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. This change was made to improve performance in situations where the Runner no longer needs to be rendered. If video is recorded during the run, the Runner will not be visible. In addition, if a screenshot with capture: runner is taken, the screenshot will be taken as if the capture: viewport option was passed. You can turn off this behavior by passing --runner-ui . Addressed in #27482 .
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:
Added --runner-ui and --no-runner-ui CLI flags to control whether the Cypress Runner UI is visible during a run. Addressed in #27582 .
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:
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-4
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-4
Released Aug 15, 2023
Bugfixes:
Dependency Updates:
Upgraded webpack from v4 to v5 . This means that we are now bundling your e2e tests with webpack 5. We don't anticipate this causing any noticeable changes. However, if you'd like to keep bundling your e2e tests with webpack 4 you can use the same process as before by pinning @cypress/webpack-batteries-included-preprocessor to v2.x.x and hooking into the file :preprocessor plugin event. This will restore the previous bundling process. Additionally, if you're using @cypress/webpack-batteries-included-preprocessor already, a new version has been published to support webpack v5 .
Upgraded tough-cookie from 4.0 to 4.1.3 , @cypress/request from 2.88.11 to 2.88.12 and @cypress/request-promise from 4.2.6 to 4.2.7 to address a security vulnerability . Fixes #27261 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-3
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-3
Released Aug 01, 2023
Bugfixes:
Performance:
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-2
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-2
Released Jul 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 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-1
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-1
Released Jul 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:
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-17-0
Released Jul 06, 2023
Features:
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:
Changelog: https://docs.cypress.io/guides/references/changelog#12-16-0
Released Jun 26, 2023
Features:
Bugfixes:
Changelog: https://docs.cypress.io/guides/references/changelog#12-15-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-15-0
Released Jun 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:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#12-14-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-14-0
Released Jun 07, 2023
Features:
Bugfixes:
Fixed an issue to now correctly detect Angular 16 dependencies ( @angular/cli , @angular-devkit/build-angular , @angular/core , @angular/common , @angular/platform-browser-dynamic ) during Component Testing onboarding. Addresses #26852 .
Ensures Git-related messages on the Runs page remain dismissed. Addresses #26808 .
Dependency Updates:
Upgraded find-process from 1.4.1 to 1.4.7 to address this Snyk 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 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-13-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-13-0
Released May 23, 2023
Features:
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 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-12-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-12-0
Released May 09, 2023
Features:
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 .
Dependency Updates:
Upgraded plist from 3.0.5 to 3.0.6 to address CVE-2022-26260 NVD security vulnerability. Addressed in #26631 .
Upgraded engine.io from 6.2.1 to 6.4.2 to address CVE-2023-31125 NVD security vulnerability. Addressed in #26664 .
Upgraded @vue/test-utils from 2.0.2 to 2.3.2 . Addresses #26575 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-11-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-11-0
Released Apr 26, 2023
Features:
Added 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:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#12-10-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-10-0
Released Apr 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 Semaphore 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 .
Correctly detect and resolve dependencies when configuring Component Testing in projects using Yarn's Plug'n'Play feature . Fixes #25960 .
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:
Upgraded commander from ^5.1.0 to ^6.2.1 . Addressed in #26226 .
Upgraded minimist from 1.2.6 to 1.2.8 to address this CVE-2021-44906 NVD security vulnerability. Addressed in #26254 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-9-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-9-0
Released Mar 28, 2023
Features:
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 .
Misc:
Changelog: https://docs.cypress.io/guides/references/changelog#12-8-1
Changelog: https://docs.cypress.io/guides/references/changelog#12-8-1
Released Mar 15, 2023
Bugfixes:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#12-8-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-8-0
Released Mar 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:
Changelog: https://docs.cypress.io/guides/references/changelog#12-7-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-7-0
Released Feb 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 .
Updated the "new" status badge for the Debug page navigation link to be less noticeable when the navigation is collapsed. Addresses #25739 .
Improved various error message around interactions with the Cypress Cloud. Implemented in #25837 .
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 , #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 .
Fixed various bugs when recording to the cloud. Fixed in #25837 .
Misc:
Changelog: https://docs.cypress.io/guides/references/changelog#12-6-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-6-0
Released Feb 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 a part 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:
Changelog: https://docs.cypress.io/guides/references/changelog#12-5-1
Changelog: https://docs.cypress.io/guides/references/changelog#12-5-1
Released Feb 02, 2023
Bugfixes:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#12-5-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-5-0
Released Jan 31, 2023
Features:
Performance:
Bugfixes:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#12-4-1
Changelog: https://docs.cypress.io/guides/references/changelog#12-4-1
Released Jan 27, 2023
Bugfixes:
Dependency Updates:
Changelog: https://docs.cypress.io/guides/references/changelog#12-4-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-4-0
Released Jan 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. Please leave any feedback around experimentalMemoryManagement here . Your feedback will help us make decisions to improve 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
Changelog: https://docs.cypress.io/guides/references/changelog#12-3-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-3-0
Released Jan 03, 2023
Features:
Added support for mapping the CYPRESS_PULL_REQUEST_ID , CYPRESS_PULL_REQUEST_URL , and/or CYPRESS_CI_BUILD_URL environment variables to the corresponding Cloud run. This provides workarounds when supported CI provider mappings are incorrect or unsupported CI providers are used. Addressed in #25036 .
Added new Cypress API, Cypress.currentRetry , to easily access the current test retry count. Addresses #25239 .
Performance:
Increased the pre-request proxy cleanup interval. The previous cleanup interval was too aggressive for projects loading a large number of JS modules, causing applications to load very slowly and in chunks. Fixed in #25209 .
Fixed an issue where browsers distributed as universal binaries (Chrome, Firefox) on M1 Macs could be launched in the wrong architecture, resulting in poor performance in-browser. Fixed in #25014 .
Resolved a delay that could occur on startup when using a custom Cypress configuration file location in projects with a transitive typescript dependency. Fixes #24781 .
Bugfixes:
Fixes an issue where component test files that contained characters, such as brackets ( [] ), would be ignored when running tests. This is a common pattern in Next.js and Gatsby.js projects. Fixes #24588 .
Updated the Jenkins environment variable mappings so pull request data is correctly linked to the corresponding Cloud run. Fixed in #25036 .
Fixed a regression in 10.11.0 where the mocha test results no longer sent the pending boolean to reporters. This caused the mochawesome reporter to incorrectly report pending tests as pending and skipped. Fixes #24477 .
Fix for regression introduced in 12.1.0 , where .contains() could return multiple elements instead of one element when it was matching directly on the subject, rather than on the subject's children. Fixes #25225 .
Fixed a small visual bug in the Test Runner such that Chrome users will no longer see a white border on the nav bar at the specific zoom levels. Fixes #25284 .
Misc
Remove the redundant Need help link from the migration information modal because the modal provides in-depth details for users already. Addresses #21923 .
Minor UI updates were make to truncate the browser's name when it exceeds the allocated space and to only show the browsers's major version in the UI. Addresses #21730 and #21755 .
Removed the line break that was displayed on the Settings page when a configuration value was an empty object. Addresses #21790 .
Dependency Updates:
Upgraded engine.io from 5.2.1 to 6.2.1 to address this security vulnerability where a specially crafted HTTP request can trigger an uncaught exception on the Engine.IO server, thus killing the Node.js process. Addressed in #23843 .
Upgraded express from 4.17.1 to 4.17.3 to address this NVD security vulnerability . Addressed in #23843 .
Upgraded simple-git from 3.4.0 to 3.15.0 to address this NVD security vulnerability . Addressed in #23843 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-2-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-2-0
Released Dec 20, 2022
Features:
Added the ability to match on resourceType with cy.intercept() , and to see the resource type of an intercepted request as req.resourceType . Addresses #14525 .
Users working in React Component Testing projects can now generate a basic spec file from the components that exist in their project. Addresses #24008 .
Performance:
Bugfixes:
Fixed an issue where the query object was not available on requests from cy.intercept() once they were yielded. Fixes #25088 .
Fixed an issue with Angular Component Testing where urls within SASS/SCSS files were not being correctly resolved which could result in incomplete styling. Fixes #24272 .
Fixed a regression introduced in Cypress 12 where cy.get() would ignore a null value for the withinSubject option. Fixes #25104 .
Fixed an issue where an unhandled promise rejection would display an incomplete error message in the command log. Fixes #24915 .
Fixed an issue where the incorrect Cypress version could be shown in the migration wizard. Fixes #25138 .
Fixed an issue where the Cypress migration wizard would fail to run in global mode on newer versions of Cypress. Addressed in #25138 .
Fixed an issue with Angular Component Testing where a custom sourceRoot configuration would not be respected. Fixes #24827 .
Fixed TypeScript typings for cy.nextUntil() to include the filter parameter. Fixes #24772 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-1-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-1-0
Released Dec 12, 2022
Features:
Added cy.getAllCookies() and cy.clearAllCookies() , which get and clear cookies for all browser cookies across any domains. Addresses #24265 , #8956 , and #408 .
Updated the error messaging to provide more context when parallel group parameters are mismatched when sent to the Cypress Cloud. Fixes #24734 .
Bugfixes:
Fixed an issue with the cy.session command where it now recollects the session data after validation is successful to correctly store the full browser context before the command ends. Addressed with #25112 .
Fixed an issue where recent versions of Firefox in headless mode would behave inconsistently with headed. Fixes #24900 .
Fixed an issue where .select(index) would fail when multiple <option> elements have the same value property. Fixes #24739 .
Cleaned up temp files generated by cypress run . Addressed by #24957
The Chrome web security configuration tooltip will now be shown only if chromeWebSecurity is set to false when using a non-chromium browser. Fixes #23846 .
Fixed an issue where updating a component would not trigger the supportFile to reload imported stylesheets. This is fixed by doing a full reload for Vite, to ensure the spec re-runs correctly with the latest styles. Fixes #24874 .
The Run All Specs experiment will now open in a new tab rather than close and reopen the browser. This will make the run faster and help mitigate #21743 . Fixes #24919 .
Changelog: https://docs.cypress.io/guides/references/changelog#12-0-2
Changelog: https://docs.cypress.io/guides/references/changelog#12-0-2
Released Dec 08, 2022
Bugfixes:
Fixed a regression in 12.0.0 where .contains() received multiple elements as a subject, it only searched inside the first one. Fixes #25025
Fixed a regression in 12.0.0 around .contains() where if the subject was a <form> element, it would only consider the first <input> element in the form, rather than every child. Fixes #25019
Changelog: https://docs.cypress.io/guides/references/changelog#12-0-1
Changelog: https://docs.cypress.io/guides/references/changelog#12-0-1
Released Dec 06, 2022
Bugfixes:
Fixed a regression in 11.2.0 where a stale spec search pattern was shown in the spec search bar after re-launching Cypress. Fixes #24936
Fixed a regression in 12.0.0 where tests scaffolded into new projects were using a removed api. Fixed in #25006
Fixed regression in 12.0.0 where setting e2e.testIsolation=false caused invalid configuration validation when running cypress run --component . Fixes #25007
Fixed a regression introduced in 12.0.0 that sometimes does not allow cy.origin() to communicate correctly with the navigated to domain. Fixes #25010
Changelog: https://docs.cypress.io/guides/references/changelog#12-0-0
Changelog: https://docs.cypress.io/guides/references/changelog#12-0-0
Released Dec 06, 2022
Summary:
The Session and Origin Experiment is now generally available for end-to-end testing. This means Cypress now fully supports:
Testing multiple origins in a single test with the new cy.origin() command.
Caching and restoring cookies, localStorage , and sessionStorage between tests
Configuring testIsolation in suites to define whether or not the browser context is cleaned or persisted between tests
Additionally in this release, enhancements were made to how Cypress manages DOM element resolution to reduce the likelihood of hitting detached DOM errors due to maintaining stale DOM references. We've updated our Retry-ability Guide with all the details if you'd like to learn more.
Read more about 12.0 in our blog post .
Breaking Changes:
Cypress dropped support for Node.js 12, 15 and 17. Those versions have reached end-of-life. Installing Cypress on your system now requires Node.js 14, 16 or 18+. Addressed in #24885 .
Cypress has always recommended writing tests in a clean context. In Cypress 12, we enforce running tests in a clean browser context through test isolation . This option is configurable, but is enabled by default. Whether enabled or disabled, this changes how Cypress cleans up the browser context before each test and you may experience test errors with this upgrade. To better understand the full impact of this change, please review the migration guide .
In Cypress v12, the testIsolation configuration values have changed from on or off to true or false . Addressed in #24935 .
The experimentalSessionAndOrigin configuration option has been removed and all functionality associated with this experiment is now enabled by default, with the exception of using require and import with callback supplied to the cy.origin() command. To leverage external dependencies in cy.origin() callbacks, set the new e2e.experimentalOriginDependencies configuration option to true . Addresses #21471 .
The Cookies.defaults and Cookies.preserveOnce APIs have been removed. Use the new cy.session() command to preserve cookies between tests. Addresses #21472 .
The cy.server() and cy.route() commands have been removed. Additionally, the corresponding Cypress.Server.defaults API has also been removed. Use the [ cy.intercept() (/api/commands/intercept) command to stub network responses and requests. Addresses #22126 .
The Cookie commands now uses the hostname as the domain by default instead of the superdomain . This change aligns Cypress' cookie rules with the browser cookie rules. This may affect what cookies are returned by cy.getCookie() , what cookies are set with cy.setCookie() , and the cookies cleared with cy.clearCookies() . Addresses #363 , #5723 and #24526 .
The .within() command now requires a single subject and throws an error if given more than one subject. This change adds consistency around how .within() behaves across commands. Previously some commands inside a .within() callback would silently select the first element, while others would use all of the previously yielded subjects, and others would throw an error. Addressed in #24975 .
Cypress now throws an error if any Cypress commands are invoked from inside a .should() callback. This previously resulted in unusual and undefined behavior. Addresses #5963 , #14656 and #22587 .
The .invoke() command now throws an error if the invoked function returns a promise. If you wish to call a method that returns a promise and wait for it to resolve, use .then() instead of .invoke() . Addressed in #24417 .
The cy.request() command now uses querystringify to stringify & parse the qs options. This change aligns with how the cy.visit() command generates urls with query parameters. Addressed in #20302 .
Features:
Added a new configuration option called testIsolation , which defaults to true . This option can be set at the e2e or suite-level to determine whether or not test isolation is enabled to ensure a clean browser context between tests. Addressed in #22230 .
The previously experimental Cypress command, cy.origin() , is now generally available in end-to-end testing. This command allows testing multiple origins in a single test. Addresses #17336 .
The previously experimental Cypress command, cy.session() , is now generally available. This command caches and restores cookies , localStorage , and sessionStorage in order to recreate a consistent browser context between tests. Addresses #20977 .
Added a new Cypress command, cy.getAllLocalStorage() , to get localStorage data for all origins with which the test has interacted. Addresses #24276 .
Added a new Cypress command, cy.clearAllLocalStorage() , to clear localStorage data for all origins with which the test has interacted. Addresses #24276 .
Added a new Cypress command, cy.getAllSessionStorage() , to get sessionStorage data for all origins with which the test has interacted. Addresses #24276 .
Added a new Cypress command, cy.clearAllSessionStorage() , to clear sessionStorage data for all origins with which the test has interacted. Addresses #24276 .
Added a new configuration option called experimentalOriginDependencies , which defaults to false . This option enables support for require and import within the callback supplied to the cy.origin() command in end-to-end testing. Previously this feature was enabled through the experimentalSessionAndOrigin configuration option. experimentalOriginDependencies was added as a configuration option in Cypress 12, instead of being enabled by default, due to increased Node.js memory usage associated with this option that needs to be addressed before making this behavior generally available. See issue #24976 for more information. Addressed in #24931 .
Added a new Cypress.ensure API which provides several methods that can be helpful when writing customs commands. Addressed in #24697 .
Added a new "Run All" button to the experimentalRunAllSpecs experiment which enables running all spec files returned from the specPattern glob or an array of globs, regardless of the specs sharing a root folder. Addresses #24759 .
Further improved bundling in the binary to reduce startup and unzip time. Addressed in #24909
Bugfixes:
Fixed a regression in 10.11.0 where the Launchpad no longer showed a loading spinner on startup to indicate that it had successfully started and was in a loading state. Fixed #24950 .
Fixed the "Create Spec from Component" capability to correctly scaffold the component spec from a component which contains special characters in its name. Before this change, a spec was scaffolded with either the wrong spec name or the incorrect component import which led to invalid JS errors. Fixes #23492 .
Corrected Cypress environment variable resolution to correctly resolve environment variables set with npm config set . Fixes #24556 .
When experimentalRunAllSpecs=true , the "Run N specs" directory-level buttons in the Inline Specs List now function correctly when activated by the keyboard. Fixes #24762 .
Fixed unexpected behaviors when verifying a cookie was not returned from cy.getCookie() . Now it's possible to explicitly assert the cookie did not exist with cy.getCookie('foo1').should('not.exist') . Previously users had to verify cookies properties did not exist with .its('value').should('equal', null) . Addressed in #24203 .
Fixed the console output returned from clicking on an aliased intercept in the Command Log. It now logs the yielded request/response object associated to the intercepted call when clicked, where previously it did not log these details. Fixed in #24623 .
Changelog: https://docs.cypress.io/guides/references/changelog#11-2-0
Changelog: https://docs.cypress.io/guides/references/changelog#11-2-0
Released Nov 22, 2022
Features:
Re-implemented the 'Run All Specs' for End to End Testing for running multiple tests sequentially in open mode. This feature had been previously removed in Cypress 10.0. Enable 'Run All Specs' with the new experimental flag, experimentalRunAllSpecs . Please leave any feedback around 'Run All Specs' here . Your feedback will help us make product decisions around the future of this feature. Addresses #24168
Added messaging after failures in CI to direct people to set up recording to the Cypress Cloud if they are not already set up to do so. Addresses #24000 .
Visually warn in the Command Log when the cy.session() command fails to restore a session to surface to users potential issues with their setup and validation. Addresses #24207 .
Bugfixes:
Changelog: https://docs.cypress.io/guides/references/changelog#11-1-0
Changelog: https://docs.cypress.io/guides/references/changelog#11-1-0
Released Nov 14, 2022
Features:
Next.js v13 is now supported. #24396
mount() now accepts an extensions.directives option, which will be registered globally for Vue2 component testing. #24488
Bugfixes:
Fixed an 11.0.0 regression where the migration workflow would error and hang for TypeScript projects. Fixes #24643
Fixed an 11.0.0 regression where cypress run crashed when using the junit reporter and an assertion failed. Fixes #24652
Fixed TypeScript types for testIsolation . Fixes #23911
Sessions will no longer be stored if validation fails which will prevent a previously failed session from being restored in the next test. Fixes #24208
Experimental Breaking Changes:
Your coding agent can read these notes before it upgrades. Set up the MCP server →