14.0.0
Released Released on January 15, 2025
Summary:
Cypress 14.0.0 improves performance of component testing and adds support for new framework and dev server versions.
14.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:
:::info
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.0to20.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
minSupportedVersionproperty 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.injectDocumentDomaincan be set totruein order to re-enable the injection ofdocument.domainsetters 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 a future version of Cypress. Addressed in #30770.The
experimentalSkipDomainInjectionconfiguration has been removed and replaced with aninjectDocumentDomainconfiguration. Addressed in #30770.It is no longer possible to make a
fetchorXMLHttpRequestrequest from theabout:blankpage in Electron (i.e.cy.window().then((win) => win.fetch('<some-url>'))). You must usecy.requestinstead or perform some form of initial navigation viacy.visit(). Addressed in #30394.The
experimentalJustInTimeCompileconfiguration option for component testing has been replaced with ajustInTimeCompileoption that istrueby 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 openandcypress runmodes, in particular for large component testing suites.justInTimeCompileis 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.Angularversions 13, 14, 15, and 16. The minimum supported version is now17.2.0in order to fully support Angular signals. Addresses #29582. Addressed in #30539.Next.jsversions 10, 11, 12, and 13. Addresses #29583.Nuxt.jsversion 2. Addresses #30468.Reactversions 16 and 17. Addresses #29607.Vueversion 2. Addresses #30295.
The
cypress/react18test harness is no longer included in the Cypress binary. Instead, React 18 support is now shipped withcypress/react! Addresses #29607.The
cypress/angular-signalstest harness is no longer included in the Cypress binary. Instead, signals support is now shipped withcypress/angular! This requiresrxjsto be installed as apeerDependency. Addresses #29606.The Cypress configuration wizard for Component Testing supports TypeScript 4.0 or greater. Addresses #30493.
@cypress/webpack-dev-serverno longer supportswebpack-dev-serverversion 3. Additionally,@cypress/webpack-dev-servernow ships withwebpack-dev-serverversion 5 by default.webpack-dev-serverversion 4 will need to be installed alongside Cypress if you are still usingwebpackversion 4. Addresses #29308, #30347, and #30141.@cypress/vite-dev-serverno longer supportsviteversions 2 and 3. Addresses #29377 and #29378.The
delayMsoption ofcy.intercept()has been removed. This option was deprecated in Cypress 6.4.0. Please use thedelayoption instead. Addressed in #30463.The
experimentalFetchPolyfillconfiguration 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:launchas an array of browser arguments. This behavior has been deprecated since Cypress 4.0.0. Addressed in #30460.The
cypress open-ctandcypress run-ctCLI commands were removed. Please usecypress open --componentorcypress run --componentrespectively instead. Addressed in #30456The undocumented methods
Cypress.backend('firefox:force:gc')andCypress.backend('log:memory:pressure')were removed. Addresses #30222.
Deprecations:
The
resourceTypeoption oncy.intercepthas 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 theresourceTypewithin Cypress in a future version (like hiding network logs that are not fetch/xhr). Please leave feedback on any essential uses ofresourceTypein this GitHub issue. Addresses #30433.The new
injectDocumentDomainconfiguration option is released as deprecated. It will be removed in a future version of Cypress. Addressed in #30770.
Features:
injectDocumentDomain, a new configuration option, can be set totruein order to re-enable the injection ofdocument.domainsetters in Cypress. Addressed in #30770.Cypress Component Testing now supports:
Reactversion 19. Addresses #29470.Angularversion 19. Addresses #30175.Next.jsversion>=15.0.4. Versions15.0.0 - 15.0.3depend on the React 19 Release Candidate and are not officially supported by Cypress, but should still work. Addresses #30445.Svelteversion 5. Addresses #29641.Viteversion 6. Addresses #30591.
Bugfixes:
Elements with
display: contentswill 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
staticorrelativeand 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
textContentbut without a width or height. Fixed in #29688. Fixes #29687.Elements whose parent elements has
overflow: clipand 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
openmode. 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
electronfrom27.3.10to33.2.1. Addresses #29547 and #30561.Upgraded
@electron/rebuildfrom3.2.10to3.7.1. Addresses #28766 and #30632.Upgraded bundled Chromium version from
118.0.5993.159to130.0.6723.137. Addresses #29547 and #30561.Updated
jQueryfrom3.4.1to3.7.1. Addressed in #30345.Updated
reactfrom17.0.2to18.3.1andreact-domfrom17.0.2to18.3.1. Addresses #30511.Upgraded
@vue/test-utilsfrom2.3.2to2.4.6. Addresses #26628.