Changelog
14.0.2​
Released 2/05/2025
Bugfixes:
- Fixed a regression introduced in
14.0.0
where error codeframes in the runner UI were not populated with the correct data in failed retry attempts. Fixes #30927. - All commands performed in
after
andafterEach
hooks will now correctly retry when a test fails. Commands that are actions like.click()
and.type()
will now perform the action in this situation also. Fixes #2831. - Fixed an issue in Cypress
14.0.0
where privileged commands did not run correctly when a spec file or support file contained characters that required encoding. Fixes #30933. - Re-enabled retrying Cloud instance creation for runs that are parallel or recorded. Fixes #31002.
Misc:
- Updated the mismatched dependencies warning message to be neutral, avoiding assumptions about upgrading or downgrading. Fixes #30990.
Dependency Updates:
- Upgraded
mime
from2.6.0
to3.0.0
. Addressed in #30966.
14.0.1​
Released 1/28/2025
Bugfixes:
- Fixed an issue where Cypress would incorrectly navigate to
about:blank
when test isolation was disabled and the last test would fail and then retry. Fixes #28527. - Fixed a regression introduced in
14.0.0
where an element would not return the correct visibility if its offset parent was within the clipping element. Fixes #30922. - Fixed a regression introduced in
14.0.0
where the incorrect visiblity would be returned when eitheroverflow-x
oroverflow-y
was visible but the other one was clipping. Fixed in #30934. - Fixed an issue where an
option
element would not return the correct visibility if its parent element has a clipping overflow. Fixed in #30934. - Fixed an issue where non-HTMLElement(s) may fail during assertions. Fixes #30944.
Misc:
- Corrected the broken documentation links displayed in Cypress 14.0.0. Addresses #30951. Addressed in #30953.
- Benign Mesa/GLX related warnings are now hidden in the terminal output when running Cypress in certain Linux environments or containers. Addresses #29521 and #29554.
14.0.0​
Released 1/16/2025
Summary:
Cypress v14.0.0 improves performance of component testing and adds support for new framework and dev server versions.
v14.0.0 also includes breaking changes to cy.origin
that are necessary to handle
Chrome's deprecation of document.domain
injection, which should fix issues for some users in recent Chrome versions. Support for older versions of Node.js, Linux distributions, browsers and component testing frameworks and dev servers is removed.
Overall, we don't anticipate this release to be too disruptive for most users. We recommend bumping your version to see if your tests still run as expected. As always, open any issues you find here.
Breaking Changes:
Refer to the v14 Migration Guide for help migrating your code.
- Removed support for Node.js 16 and Node.js 21. Addresses #29930.
- Upgraded bundled Node.js version from
18.17.0
to20.18.1
. Addresses #29547. - Prebuilt binaries for Linux are no longer compatible with Linux distributions based on glibc
<2.28
, for example: Ubuntu 14-18, RHEL 7, CentOS 7, Amazon Linux 2. Addresses #29601. - Cypress now only officially supports the latest 3 major versions of Chrome, Firefox, and Edge - older browser versions may still work, but we recommend keeping your browsers up to date to ensure compatibility with Cypress. A warning will no longer be displayed on browser selection in the Launchpad for any 'unsupported' browser versions. Additionally, the undocumented
minSupportedVersion
property has been removed fromCypress.browser
. Addressed in #30462. - The
cy.origin()
command must now be used when navigating between subdomains. Because this is a fairly disruptive change for users who frequently navigate between subdomains, a new configuration option is being introduced.injectDocumentDomain
can be set totrue
in order to re-enable the injection ofdocument.domain
setters in Cypress. This configuration option is marked as deprecated and you'll receive a warning when Cypress is launched with this option set totrue
. It will be removed in Cypress 15. Addressed in #30770. - The
experimentalSkipDomainInjection
configuration has been removed and replaced with aninjectDocumentDomain
configuration. Addressed in #30770. - It is no longer possible to make a
fetch
orXMLHttpRequest
request from theabout:blank
page in Electron (i.e.cy.window().then((win) => win.fetch('<some-url>'))
). You must usecy.request
instead or perform some form of initial navigation viacy.visit()
. Addressed in #30394. - The
experimentalJustInTimeCompile
configuration option for component testing has been replaced with ajustInTimeCompile
option that istrue
by default. This option will only compile resources directly related to your spec, compiling them 'just-in-time' before spec execution. This should result in improved memory management and performance for component tests incypress open
andcypress run
modes, in particular for large component testing suites.justInTimeCompile
is now only supported forwebpack
. Addresses #30234. Addressed in #30641. - Cypress Component Testing no longer supports:
create-react-app
. Addresses #30028.@vue/cli-service
. Addresses #30481.Angular
versions 13, 14, 15, and 16. The minimum supported version is now17.2.0
in order to fully support Angular signals. Addresses #29582. Addressed in #30539.Next.js
versions 10, 11, 12, and 13. Addresses #29583.Nuxt.js
version 2. Addresses #30468.React
versions 16 and 17. Addresses #29607.Svelte
versions 3 and 4. Addresses #30492 and #30692.Vue
version 2. Addresses #30295.
- The
cypress/react18
test harness is no longer included in the Cypress binary. Instead, React 18 support is now shipped withcypress/react
! Addresses #29607. - The
cypress/angular-signals
test harness is no longer included in the Cypress binary. Instead, signals support is now shipped withcypress/angular
! This requiresrxjs
to be installed as apeerDependency
. Addresses #29606. - The Cypress configuration wizard for Component Testing supports TypeScript 4.0 or greater. Addresses #30493.
@cypress/webpack-dev-server
no longer supportswebpack-dev-server
version 3. Additionally,@cypress/webpack-dev-server
now ships withwebpack-dev-server
version 5 by default.webpack-dev-server
version 4 will need to be installed alongside Cypress if you are still usingwebpack
version 4. Addresses #29308, #30347, and #30141.@cypress/vite-dev-server
no longer supportsvite
versions 2 and 3. Addresses #29377 and #29378.- The
delayMs
option ofcy.intercept()
has been removed. This option was deprecated in Cypress 6.4.0. Please use thedelay
option instead. Addressed in #30463. - The
experimentalFetchPolyfill
configuration option was removed. This option was deprecated in Cypress 6.0.0. We recommend usingcy.intercept()
for handling fetch requests. Addressed in #30466. - We removed yielding the second argument of
before:browser:launch
as an array of browser arguments. This behavior has been deprecated since Cypress 4.0.0. Addressed in #30460. - The
cypress open-ct
andcypress run-ct
CLI commands were removed. Please usecypress open --component
orcypress run --component
respectively instead. Addressed in #30456 - The undocumented methods
Cypress.backend('firefox:force:gc')
andCypress.backend('log:memory:pressure')
were removed. Addresses #30222.
Deprecations:
- The
resourceType
option oncy.intercept
has been deprecated. We anticipate the resource types to change or be completely removed in the future. Our intention is to replace essential functionality dependent on theresourceType
within Cypress in a future version (like hiding network logs that are not fetch/xhr). Please leave feedback on any essential uses ofresourceType
in this GitHub issue. Addresses #30433. - The new
injectDocumentDomain
configuration option is released as deprecated. It will be removed in Cypress 15. Addressed in #30770.
Features:
injectDocumentDomain
, a new configuration option, can be set totrue
in order to re-enable the injection ofdocument.domain
setters in Cypress. Addressed in #30770.- Cypress Component Testing now supports:
React
version 19. Addresses #29470.Angular
version 19. Addresses #30175.Next.js
version >=15.0.4. Versions 15.0.0 - 15.0.3 depend on the React 19 Release Candidate and are not officially supported by Cypress, but should still work. Addresses #30445.Svelte
version 5. Addresses #29641.Vite
version 6. Addresses #30591.
Bugfixes:
- Elements with
display: contents
will no longer use box model calculations for visibility, and correctly show as visible when they are visible. Fixed in #29680. Fixes #29605. - Fixed a visibility issue when the element is positioned
static
orrelative
and the element's offset parent is positionedabsolute
, a descendent of the ancestor, and has no clippable overflow. Fixed in #29689. Fixes #28638. - Fixed a visibility issue for elements with
textContent
but without a width or height. Fixed in #29688. Fixes #29687. - Elements whose parent elements has
overflow: clip
and no height/width will now correctly show as hidden. Fixed in #29778. Fixes #23852. - The CSS pseudo-class
:dir()
is now supported when testing in Electron. Addresses #29766. - Fixed an issue where the spec filename was not updating correctly when changing specs in
open
mode. Fixes #30852. cy.origin()
now correctly errors when thecy.window()
,cy.document()
,cy.title()
,cy.url()
,cy.location()
,cy.hash()
,cy.go()
,cy.reload()
, andcy.scrollTo()
commands are used outside of thecy.origin()
command after the AUT has navigated away from the primary origin. Fixes #30848. Fixed in #30858.
Misc:
- Removed some component testing API stubs that were removed in Cypress v11.0.0. Addressed in #30696. Addresses #30623.
Dependency Updates:
- Upgraded
electron
from27.3.10
to33.2.1
. Addresses #29547 and #30561. - Upgraded
@electron/rebuild
from3.2.10
to3.7.1
. Addresses #28766 and #30632. - Upgraded bundled Chromium version from
118.0.5993.159
to130.0.6723.137
. Addresses #29547 and #30561. - Updated
jQuery
from3.4.1
to3.7.1
. Addressed in #30345. - Updated
react
from17.0.2
to18.3.1
andreact-dom
from17.0.2
to18.3.1
. Addresses #30511. - Upgraded
@vue/test-utils
from2.3.2
to2.4.6
. Addresses #26628.
13.17.0​
Released 12/17/2024
Features:
- Added official support for the Google Chrome for Testing browser. Assuming the browser is in a location where it can be auto-detected, it can be launched by providing the
--browser chrome-for-testing
option. If it can't be auto-detected, the path to the browser can also be provided. Previously customizing the available browsers was required. Addresses #28123 and #28554.
Bugfixes:
- Fixed an issue where targets may hang if
Network.enable
is not implemented for the target. Addresses #29876. - Updated Firefox
userChrome.css
to correctly hide the toolbox during headless mode. Addresses #30721. - Fixed an issue loading the
cypress.config.ts
file with Node.js version22.12.0
if it is loaded as an ESM. Addresses #30715.
Misc:
- Removed a comment from the scaffolded
supportFile
for component tests around CommonJS syntax. Addresses #23287.
Dependency Updates:
- Updated
chai
from4.2.0
to4.5.0
. Addressed in #30737.
13.16.1​
Released 12/04/2024
Bugfixes:
- During recorded or parallel runs, execution will fail if Cypress is unable to confirm the creation of an instance instead of skipping the spec. Addresses #30628.
13.16.0​
Released 11/19/2024
Features:
- Added new
defaultBrowser
configuration option to specify the default browser to launch. This option only affects the first browser launch; changing this option after the browser is already launched will have no effect. Addresses #6646.
Bugfixes:
- Fixed an issue where some JS assets were not properly getting sourcemaps included with the vite dev server if they had a cache busting query parameter in the URL. Fixed some scenarios to ensure that the sourcemaps that were included by the vite dev server were inlined. Addressed in #30606.
Misc:
- Updated the protocol to be able to flex logic based on project config. Addresses #30560.
13.15.2​
13.15.2​
Released 11/5/2024
Bugfixes:
- Fixed an issue where the Cypress runner could hang in
after
orafterEach
hooks that run Cypress commands after a page load timeout error occurs. Addresses #30238.
Misc:
- Fixed a typo in CLI
global
option help text. Addresses #30531.
Dependency Updates:
- Updated
mobx
from5.15.4
to6.13.5
andmobx-react
from6.1.8
to9.1.1
. Addresses #30509. - Updated
@cypress/request
from3.0.4
to3.0.6
. Addressed in #30488.
13.15.1​
Released 10/24/2024
Bugfixes:
- Patched find-process to fix an issue where trying to clean up browser profiles can throw an error on Windows. Addresses #30378.
- Fixed an issue where requests to the same resource in rapid succession may not have the appropriate static response intercept applied if there are multiple intercepts that apply for that resource. Addresses #30375.
Misc:
- Cypress now consumes geckodriver to help automate the Firefox browser instead of marionette-client. Addresses #30217.
- Cypress now consumes webdriver to help automate the Firefox browser and firefox-profile to create a firefox profile and convert it to Base64 to save user screen preferences via
xulstore.json
. Addresses #30300 and #30301. - Spec information is now passed to protocol's
beforeSpec
to improve troubleshooting when reporting on errors. Addressed in #30316.
Dependency Updates:
- Updated
simple-git
from3.16.0
to3.25.0
. Addressed in #30076.
13.15.0​
Released 9/25/2024
Features:
- Cypress now displays more actionable errors when a Test Replay upload takes too long, and more verbose messages when uncategorized errors occur during the upload process. Addressed in #30235.
Bugfixes:
- Fixed an issue where Firefox was incorrectly mutating the state of click events on checkboxes after Firefox version
129
and up. Addressed in #30245. - Fixed a regression introduced in 13.13.0 where 'Open in IDE' would not work for filepaths containing spaces and various other characters on Windows. Addresses #29820.
Misc:
- Pass along the related log to the
createSnapshot
function for protocol usage. Addressed in #30244.
Dependency Updates:
- Update
@cypress/request
from3.0.1
to3.0.4
. Addressed in #30194. - Updated
express
from4.19.2
to4.21.0
. This removes the CVE-2024-43796, CVE-2024-45590, and CVE-2024-43800 vulnerabilities being reported in security scans. Addresses #30241. - Update
launch-editor
from2.8.0
to2.9.1
. Addressed in #30247. - Updated
loader-utils
from1.4.0
to1.4.2
. This removes the CVE-2022-37601 vulnerability being reported in security scans. Addresses #28208. - Updated
send
from0.17.1
to0.19.0
. This removes the CVE-2024-43799 vulnerability being reported in security scans. Addressed in #30241.
13.14.2​
Released 9/4/2024
Bugfixes:
- Fixed an issue where Cypress could crash with a
WebSocket Connection Closed
error. Fixes #30100. - Fixed an issue where
cy.screenshot()
was timing out and Cypress was failing to start due toGLib-GIO-ERROR
error. Reverts #30109, the change to allow HiDPI screen for Wayland users. Fixes #30172 and #30160.
13.14.1​
Released 8/29/2024
Bugfixes:
- Fixed an issue where no description was available for the
experimentalJustInTimeCompile
feature inside the Cypress application settings page. Addresses #30126.
13.14.0​
Released 8/27/2024
Performance:
- Fixed a potential memory leak in the Cypress server when re-connecting to an unintentionally disconnected CDP connection. Fixes #29744. Addressed in #29988.
Features:
- Added new
experimentalJustInTimeCompile
configuration option for component testing. This option will only compile resources directly related to your spec, compiling them 'just-in-time' before spec execution. This should result in improved memory management and performance for component tests incypress open
andcypress run
modes, in particular for large component testing suites.experimentalJustInTimeCompile
is currently supported forwebpack
andvite
. Addresses #29244. .type({upArrow})
and.type({downArrow})
now also works for date, month, week, time, datetime-local and range input types. Addresses #29665.- Added a
CYPRESS_SKIP_VERIFY
flag to enable suppressing Cypress verification checks. Addresses #22243. - Updated the protocol to allow making Cloud API requests. Addressed in #30066.
- Passing
--browser
flag alone will automatically launch browser after being guided through project and/or testing type selection. Addressed in #28538.
Bugfixes:
- Fixed an issue where files outside the Cypress project directory were not calculating the bundle output path correctly for the
file:preprocessor
. Addresses #8599. - Fixed an issue where Cypress would not run if Node.js version
22.7.0
was being used with TypeScript and ES Modules. Fixes #30084. - Correctly determines current browser family when choosing between
unload
andpagehide
options in App Runner. Fixes #29880.
Misc:
- Allow HiDPI screen running Wayland to use Cypress window/browser by adding
--ozone-platform-hint=auto
flag to Electron's runtime argument. Addresses #20891.
Dependency Updates:
- Updated
detect-port
from1.3.0
to1.6.1
. Addressed in #30038.
13.13.3​
Released 8/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:
- Updated
cypress open
hints displayed after Cypress binary install. Addresses #29935.
Dependency Updates:
- Updated
image-size
from0.8.3
to1.1.1
. Addressed in #30023.
13.13.2​
Released 7/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:
- Fixed an issue where Yarn PnP was not working correctly with Cypress and
@cypress/webpack-batteries-included-preprocessor
. Fixes #27947.
Dependency Updates:
- Updated
@cypress/request
from3.0.0
to3.0.1
. Addresses #29863. - Updated
chrome-remote-interface
from0.33.0
to0.33.2
. Addressed in #29932. - Updated
mime
from2.4.4
to2.6.0
. Addressed in #29870. - Updated
strip-ansi
from6.0.0
to6.0.1
. Addressed in #29931.
13.13.1​
Released 7/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
from3.1.1
to3.4.1
. Addresses #29822. Addressed in #29837. - Replaced
json-lint
withjson-parse-even-better-errors
. This removes the CVE-2021-23358 vulnerability being reported in security scans. Addresses #28207. - Updated
minimatch
from3.0.4
to3.1.2
. Addressed in #29821.
13.13.0​
Released 7/02/2024
Performance:
- Improved performance of
experimentalSourceRewriting
option. Fixed in #29540.
Features:
- Adds Signal support for Angular Component Testing versions 17.2 and up. Addresses #29264.
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
from2.3.0
to2.8.0
. Addressed in #29770. - Updated
memfs
from3.4.12
to3.5.3
. Addressed in #29746. - Updated
tmp
from0.2.1
to0.2.3
. Addresses #29693. - Updated
ws
from5.2.3
to5.2.4
. Addressed in #29698.
13.12.0​
Released 6/18/2024
Features:
- Added Component Testing support for Angular version 18. Addresses #29309.
Bugfixes:
- We now trigger
input
andchange
events when typing{upArrow}
and{downArrow}
via.type()
oninput[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 whensourceMaps
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:
- Report afterSpec durations to Cloud API when running in record mode with Test Replay enabled. Addressed in #29500.
Dependency Updates:
- Updated firefox-profile from
4.3.1
to4.6.0
. Addressed in #29662. - Updated typescript from
4.7.4
to5.3.3
. Addressed in #29568. - Updated url-parse from
1.5.9
to1.5.10
. Addressed in #29650.
13.11.0​
Released 6/4/2024
Performance:
- Improved performance when setting console props within
Cypress.log
. Addressed in #29501.
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 usingpagehide
as a proxy. Fixes #29241.
Misc:
- Enhanced the type definitions available to
cy.intercept()
andcy.wait()
. Thebody
property of both the request and response in an interception can optionally be specified with user-defined types. Addresses #29507.
13.10.0​
Released 5/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
to3.0.5
. Addressed in #29497. - Updated randomstring from
1.1.5
to1.3.0
. Addressed in #29503.
13.9.0​
Released 5/7/2024
Features:
- Added more descriptive error messages when Test Replay fails to record or upload. Addresses #29022.
Bugfixes:
- Fixed a bug where promises rejected with
undefined
were failing insidecy.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 betrue
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:
- Improved accessibility of the Cypress App in some areas. Addressed in #29322.
Dependency Updates:
- Updated electron from
27.1.3
to27.3.10
to address CVE-2024-3156. Addressed in #29431.
13.8.1​
Released 4/23/2024
Performance:
- Fixed a performance issue with activated service workers that aren't controlling clients which could lead to correlation timeouts. Fixes #29333 and #29126.
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:
.its()
type now excludes null and undefined. Fixes #28872.
Dependency Updates:
- Updated zod from
3.20.3
to3.22.5
. Addressed in #29367.