cypress-io/cypress
### [`v5.4.0`](https://togithub.com/cypress-io/cypress/releases/v5.4.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.3.0...v5.4.0)
_Released 10/14/2020_
**Features:**
- You can now run [`cypress cache prune`](https://on.cypress.io/command-line#cypress-cache-prune) to delete all installed Cypress versions from the cache except for the currently-installed version. Addresses [#5972](https://togithub.com/cypress-io/cypress/issues/5972).
- There's a new `--size` option for the [`cypress cache list`](https://on.cypress.io/command-line#cypress-cache-list) command that prints the sizes of the Cypress cache folders. Addresses [#6404](https://togithub.com/cypress-io/cypress/issues/6404).
- For video recordings of runs, there is now a video chapter key for each test. If your video player supports chapters, you can move to the start of each test right away. Addresses [#3626](https://togithub.com/cypress-io/cypress/issues/3626).
- In Windows, you can now append the browser type to the end of the path passed to the `--browser` flag, like `cypress open --browser C:/User/App/browser.exe:chrome`, to help detect the browser type. Addresses [#6389](https://togithub.com/cypress-io/cypress/issues/6389).
- [`cy.viewport()`](https://on.cypress.io/viewport) has new `iphone-7`, `iphone-8`, and `iphone-se2` presets. Addressed in [#8624](https://togithub.com/cypress-io/cypress/issues/8624)
- When there is a new version of Cypress available, the update modal has a new design with 'copy to clipboard' buttons to copy the upgrade commands. Addressed in [#8751](https://togithub.com/cypress-io/cypress/issues/8751).
- The [Command Log](https://on.cypress.io/test-runner#Command-Log) can be hidden by passing the `CYPRESS_NO_COMMAND_LOG=1` environment variable during `cypress open` or `cypress run` to be used as a tool to debug performance issues. Addressed in [#8689](https://togithub.com/cypress-io/cypress/issues/8689).
**Bugfixes:**
- We fixed a regression in [5.0.0](https://on.cypress.io/changelog-5-8-0) where the `chromeWebSecurity` option had no effect in Electron. Fixes [#8399](https://togithub.com/cypress-io/cypress/issues/8399).
- Tests will no longer hang and now properly throw when there is an error thrown from a `test:after:run` event listener. Fixes [#2271](https://togithub.com/cypress-io/cypress/issues/2271) and [#8701](https://togithub.com/cypress-io/cypress/issues/8701).
- When a command is chained after [`.within()`](https://on.cypress.io/within) and "`cy.get()`" is called inside it, the scope will no longer permanently change. Fixes [#2106](https://togithub.com/cypress-io/cypress/issues/2106), [#4672](https://togithub.com/cypress-io/cypress/issues/4672), [#4757](https://togithub.com/cypress-io/cypress/issues/4757), and [#5183](https://togithub.com/cypress-io/cypress/issues/5183).
- Dual commands like [`cy.contains()`](https://on.cypress.io/contains) when used after an [`.each()`](https://on.cypress.io/each) commands now query as expected. Fixes [#4921](https://togithub.com/cypress-io/cypress/issues/4921).
- `/` is no longer added to the URL when `baseUrl` has param(s). Fixes [#2101](https://togithub.com/cypress-io/cypress/issues/2101).
- When using [`cy.route2()`](https://on.cypress.io/route2) the route handler timeouts will no longer leak into other tests and cause random failures. Addressed in [#8727](https://togithub.com/cypress-io/cypress/issues/8727).
- Re-running failed build steps in Bitbucket will no longer create a new run on the Cypress Dashboard. Fixes [#8720](https://togithub.com/cypress-io/cypress/issues/8720).
- The forced garbage collection timer will no longer display when using a version of Firefox newer than 80. Fixes [#8725](https://togithub.com/cypress-io/cypress/issues/8725).
- The browser dropdown is no longer covered when opened from the Runs tab in the Test Runner. Fixed in [#8745](https://togithub.com/cypress-io/cypress/issues/8745).
- Fixed an issue where preprocessor-related plugins would cause tests not to run and a duplicate instance of Cypress to be spawned. Fixes [#8634](https://togithub.com/cypress-io/cypress/issues/8634).
**Misc:**
- Improved type definitions for [`cy.route2()`](https://on.cypress.io/route2). Addresses [#8694](https://togithub.com/cypress-io/cypress/issues/8694) and [#8782](https://togithub.com/cypress-io/cypress/issues/8782).
- The Test Runner now shows an indicator in the footer and a toast notification if there is a new version available. Addressed in [#8702](https://togithub.com/cypress-io/cypress/issues/8702) and [#8803](https://togithub.com/cypress-io/cypress/issues/8803).
**Dependency Updates:**
- Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `83` to `85`. Addressed in [#8406](https://togithub.com/cypress-io/cypress/pull/8406).
- Upgraded bundled Node.js version from `12.14.1` to `12.16.3`. Addressed in [#8406](https://togithub.com/cypress-io/cypress/pull/8406).
- Upgraded `electron` from `9.2.1` to `10.1.3`. Addressed in [#8406](https://togithub.com/cypress-io/cypress/pull/8406).
- Upgraded `firefox-profile` from `2.0.0` to `4.0.0`. Addressed in [#8786](https://togithub.com/cypress-io/cypress/pull/8786).
- Upgraded `node-forge` from `0.9.0` to `0.10.0`. Addressed in [#8800](https://togithub.com/cypress-io/cypress/pull/8800).
### [`v5.3.0`](https://togithub.com/cypress-io/cypress/releases/v5.3.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.2.0...v5.3.0)
_Released 9/28/2020_
**Features:**
- Firefox support is now out of beta! 🎉 Firefox 80 and newer are now officially stable when used with Cypress. Addresses [#8241](https://togithub.com/cypress-io/cypress/issues/8241).
- Versions of Firefox older than 80 can still be used, but will be subject to the `firefoxGcInterval` workaround. The desktop GUI will display a warning if such versions are used.
**Bugfixes:**
- Fixed a bug where `cy.route2` would not automatically JSONify an empty array handler. Addresses [#8532](https://togithub.com/cypress-io/cypress/issues/8532).
- Fixed a bug where objects yielded by using `cy.wait` on a `cy.route2` alias would not always have a `response` property. Addresses [#8536](https://togithub.com/cypress-io/cypress/issues/8536).
- Fixed an issue where `cy.route2` routes would not be able to intercept requests to HTTPS destinations on a different origin. Addresses [#8487](https://togithub.com/cypress-io/cypress/issues/8487).
- Fixed an issue where subjects became `undefined` after certain assertion failures. Addresses [#5763](https://togithub.com/cypress-io/cypress/issues/5763).
- Fixed an issue where a `cy.task` with no arguments passed would receive `null` as the first argument instead of `undefined`. Addresses [#5913](https://togithub.com/cypress-io/cypress/issues/5913).
- Fixed an issue preventing users from passing the config-file argument when starting cypress through the node module API. Addresses [#8632](https://togithub.com/cypress-io/cypress/issues/8632).
- Fixed an issue where `cy.visit()`s to a relative URL containing `..` would not work. Addresses [#5090](https://togithub.com/cypress-io/cypress/issues/5090).
- Fixed an issue where Mocha hooks could still be triggered after the Test Runner was manually stopped. Addresses [#8621](https://togithub.com/cypress-io/cypress/issues/8621).
- Fixed an issue where `cy.setCookie` failed when given a cookie name with a `__Host-` prefix. Addresses [#8261](https://togithub.com/cypress-io/cypress/issues/8261).
- Fixed an issue where a misleading error was displayed when test code threw an exception with a non-`Error` object. Addresses [#7870](https://togithub.com/cypress-io/cypress/issues/7870).
**Misc:**
- The proxy now omits the `Content-Security-Policy-Report-Only` header the same way that it does for `Content-Security-Policy`. Addresses [#7936](https://togithub.com/cypress-io/cypress/issues/7936).
- Added a `status` property to `CypressRunResult` objects. Addresses [#8580](https://togithub.com/cypress-io/cypress/issues/8580).
- Updated types to no longer use deprecated Mocha interfaces. Addresses [#5795](https://togithub.com/cypress-io/cypress/issues/5795).
- Passing an empty string to `CYPRESS_INSTALL_BINARY` now takes precedence over npm config. Addresses [#8488](https://togithub.com/cypress-io/cypress/issues/8488).
### [`v5.2.0`](https://togithub.com/cypress-io/cypress/releases/v5.2.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.1.0...v5.2.0)
_Released 9/15/2020_
**Features:**
- Added the configuration option `includeShadowDom` for enabling shadow DOM querying globally, per-suite, per-test, or programmatically. Addresses [#8442](https://togithub.com/cypress-io/cypress/issues/8442).
- Added a `followRedirect` option to request interception with `cy.route2()`, allowing redirects to be followed before continuing to response interception. Addresses [#7967](https://togithub.com/cypress-io/cypress/issues/7967).
- Added the capability to specify `delayMs` and `throttleKbps` when stubbing static responses with `cy.route2()`. Addresses [#7661](https://togithub.com/cypress-io/cypress/issues/7661).
- Installing Cypress pre-releases no longer requires setting the `CYPRESS_BINARY_INSTALL` environment variable. Addresses [#8482](https://togithub.com/cypress-io/cypress/issues/8482).
**Performance Improvements:**
- Fixed a performance issue which led to CPU bottlenecking during Cypress runs. Addresses [#8012](https://togithub.com/cypress-io/cypress/issues/8012) and [#8297](https://togithub.com/cypress-io/cypress/issues/8297).
**Bugfixes:**
- Fixed an issue where using TypeScript path aliases in the plugins file would error. Addresses [#8555](https://togithub.com/cypress-io/cypress/issues/8555).
- Fixed an issue where using `cy.contains()` within a shadow root would not yield the correct element. Addresses [#8494](https://togithub.com/cypress-io/cypress/issues/8494).
- Fixed an issue where querying the shadow DOM in a `cy.within()` callback would throw the error `root.getRootNode is not a function`. Addresses [#8478](https://togithub.com/cypress-io/cypress/issues/8478).
- Fixed an issue with `cy.type()` `{moveToStart}/{moveToEnd}` special characters moving the cursor to the current line instead of the entire text editable when typing in a `contenteditable` element. Addresses [#8465](https://togithub.com/cypress-io/cypress/issues/8465).
- Fixed an issue where typing into a manually-focused number input would prepend the number instead of appending it. Addresses [#7170](https://togithub.com/cypress-io/cypress/issues/7170).
- `cy.type()` now fires a `KeyboardEvent` event instead of an `Event` event. Addresses [#6125](https://togithub.com/cypress-io/cypress/issues/6125) and [#5650](https://togithub.com/cypress-io/cypress/issues/5650).
- Fixed long selectors in the selector playground text input overflowing other page elements. Addresses [#8247](https://togithub.com/cypress-io/cypress/issues/8247) and [#4184](https://togithub.com/cypress-io/cypress/issues/4184).
- Fixed an issue where assertions on `cy.getCookie()` would be called twice. Addresses [#6672](https://togithub.com/cypress-io/cypress/issues/6672).
- Fixed an issue that caused the "Open in IDE" button on hooks and tests not to appear in Firefox. Addresses [#8257](https://togithub.com/cypress-io/cypress/issues/8257).
- Fixed an issue causing Cypress to hang on test retry in run mode with certain assertions. Addresses [#8363](https://togithub.com/cypress-io/cypress/issues/8363).
**Documentation Changes:**
- Fixed examples of delaying and throttling responses with `cy.route2()`. Addresses [#8489](https://togithub.com/cypress-io/cypress/issues/8489).
- Added examples of using a response function with `cy.route2()`. Addresses [#8468](https://togithub.com/cypress-io/cypress/issues/8468).
- Removed unmaintained languages. English docs is the only supported language by the Cypress team. We greatly appreciate the contributions from the community for other languages, but these docs are largely stale, unmaintained, and partial. The Cypress team will seek out more scalable docs internalization implementation in the future.
**Misc:**
- The `experimentalShadowDomSupport` configuration flag has been removed. It is no longer necessary to enable shadow DOM testing.
- Improved the error message when the subject provided to `cy.shadow()` is not a shadow host. Addresses [#8530](https://togithub.com/cypress-io/cypress/issues/8530).
- Improved the error message when the Cypress binary is not executable. It now recommends trying to clear the cache and re-install. Addresses [#8397](https://togithub.com/cypress-io/cypress/issues/8397).
- Added missing type declarations for the `cy.route2()` command.
- Updated the type declaration for `Cypress.Commands.add()`, adding `Promise` to the list of allowed return types. Addresses [#7807](https://togithub.com/cypress-io/cypress/issues/7807).
### [`v5.1.0`](https://togithub.com/cypress-io/cypress/releases/v5.1.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.0.0...v5.1.0)
_Released 9/1/2020_
**Features:**
- Introducing _experimental_ full network stubbing support 🎉.
- With `experimentalNetworkStubbing` enabled, the `cy.route2` command is available.
- By using [cy.route2()](https://on.cypress.io/route2), your tests can intercept, modify, and wait on any type of HTTP request originating from your app, including `XMLHttpRequest`s, `fetch` requests, beacons, and subresources (like iframes and scripts).
- Outgoing HTTP requests can be modified before reaching the destination server, and the HTTP response can be intercepted as well before it reaches the browser.
- See the [cy.route2()](https://on.cypress.io/route2) docs for more information on how to enable this experiment.
- `cy.trigger()` now accepts an `eventConstructor` option for specifying the constructor with which to create the event to trigger. Addresses [#5650](https://togithub.com/cypress-io/cypress/issues/5650).
**Bugfixes:**
- Improved warnings for when user is exceeding test limits of the free Dashboard plan. Addresses [#8409](https://togithub.com/cypress-io/cypress/issues/8409).
- Added `retries` to `TestOptions` types. Addresses [#8405](https://togithub.com/cypress-io/cypress/issues/8405).
- Added types for `specType` field on `Cypress.spec`. Addresses [#8256](https://togithub.com/cypress-io/cypress/issues/8256).
- Fixed a typo in type definitions. Addresses [#8417](https://togithub.com/cypress-io/cypress/issues/8417).
- Cypress now resolves and loads tsconfig.json for TypeScript projects starting from the plugins directory. Addresses [#8359](https://togithub.com/cypress-io/cypress/issues/8359).
- Fixed an issue where, if npm config's `noproxy` is set, unexpected behavior could occur. Addresses [#8287](https://togithub.com/cypress-io/cypress/issues/8287).
- Fixed an issue where nesting hooks within other hooks caused the test to never finish. Addresses [#8350](https://togithub.com/cypress-io/cypress/issues/8350).
- Fixed an issue in where tests would unexpectedly fail with a "Can't resolve 'async_hooks'" error. Addresses [#8375](https://togithub.com/cypress-io/cypress/issues/8375).
- Fixed an issue where return values from blob utils were mistaken for promises and could cause errors. Addresses [#8365](https://togithub.com/cypress-io/cypress/issues/8365).
- Fixed an issue with loading `.mjs` files. Addresses [#8361](https://togithub.com/cypress-io/cypress/issues/8361).
- Fixed an issue causing tests to run slowly in Electron. Addresses [#7930](https://togithub.com/cypress-io/cypress/issues/7930).
- Using `.should` with only chainer assertions will now throw an error. Addresses [#883](https://togithub.com/cypress-io/cypress/issues/883).
- `cy.trigger()` now includes the `view` property in the event object when appropriate. Addresses [#3686](https://togithub.com/cypress-io/cypress/issues/3686).
- Fixed an issue where Cypress would not detect newer 64-bit installations of Chrome on Windows. Addresses [#8425](https://togithub.com/cypress-io/cypress/issues/8425).
- Fixed an issue where Cypress would not detect per-user Firefox installations on Windows. Addresses [#8432](https://togithub.com/cypress-io/cypress/issues/8432).
**Dependency Updates:**
- Updated dependency `iconv-lite` to version `0.6.2`. Addresses [#8387](https://togithub.com/cypress-io/cypress/issues/8387).
- Updated dependency `command-exists` to version `1.2.9`. Addresses [#8388](https://togithub.com/cypress-io/cypress/issues/8388).
- Updated dependency `electron` to version `9.2.1`. Addresses [#8436](https://togithub.com/cypress-io/cypress/issues/8436).
### [`v5.0.0`](https://togithub.com/cypress-io/cypress/releases/v5.0.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.12.1...v5.0.0)
_Released 8/19/2020_
**Summary:**
Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details.
**Breaking Changes:**
**Please read our [Migration Guide](https://on.cypress.io/migration-guide) which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.**
- The [`cypress-plugin-retries`](https://togithub.com/Bkucera/cypress-plugin-retries) plugin has been deprecated in favor of test retries built into Cypress. Addresses [#1313](https://togithub.com/cypress-io/cypress/issues/1313).
- The [`Cypress.Cookies.defaults()`](https://on.cypress.io/cookies) `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in [#7782](https://togithub.com/cypress-io/cypress/issues/7782).
- The `blacklistHosts` configuration has been renamed to [`blockHosts`](https://on.cypress.io/configuration#Notes) to more closely reflect its behavior. Addressed in [#7622](https://togithub.com/cypress-io/cypress/issues/7622).
- The [`cy.server()`](https://on.cypress.io/server) `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses [#6642](https://togithub.com/cypress-io/cypress/issues/6642).
- `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791).
- Values yielded by [`cy.setCookie()`](https://on.cypress.io/setcookie), [`cy.getCookie()`](https://on.cypress.io/getcookie), and [`cy.getCookies()`](https://on.cypress.io/getcookies) will now contain the `sameSite` property if specified. Addresses [#6892](https://togithub.com/cypress-io/cypress/issues/6892).
- The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses [#6892](https://togithub.com/cypress-io/cypress/issues/6892).
- The return type of the [`Cypress.Blob`](https://on.cypress.io/blob) methods `arrayBufferToBlob`, `base64StringToBlob`, `binaryStringToBlob`, and `dataURLToBlob` have changed from `Promise` to `Blob`. Addresses [#6001](https://togithub.com/cypress-io/cypress/issues/6001).
- Cypress no longer supports file paths with a question mark `?` in them. We now use the [webpack preprocessor](https://togithub.com/cypress-io/cypress-webpack-preprocessor) by default and it does not support files with question marks. Addressed in [#7982](https://togithub.com/cypress-io/cypress/pull/7982).
- For TypeScript compilation of spec, support, and plugins files, the `esModuleInterop` option is no longer coerced to `true`. If you need to utilize `esModuleInterop`, set it in your `tsconfig.json`. Addresses [#7575](https://togithub.com/cypress-io/cypress/issues/7575).
- Cypress now requires TypeScript 3.4+. Addressed in [#7856](https://togithub.com/cypress-io/cypress/issues/7856).
- Installing Cypress on your system now requires Node.js 10+. Addresses [#6574](https://togithub.com/cypress-io/cypress/issues/6574).
- In spec files, the values for the globals `__dirname` and `__filename` no longer include leading slashes. Addressed in [#7982](https://togithub.com/cypress-io/cypress/pull/7982).
**Features:**
- There's a new `retries` configuration option to configure the number of times to retry a failing test. Addresses [#1313](https://togithub.com/cypress-io/cypress/issues/1313).
- [`.click()`](https://on.cypress.io/click), [`.dblclick()`](https://on.cypress.io/dblclick), and [`.rightclick()`](https://on.cypress.io/rightclick) now accept options `altKey`, `ctrlKey`, `metaKey`, and `shiftKey` to hold down key combinations while clicking. Addresses [#486](https://togithub.com/cypress-io/cypress/issues/486).
- You can now chain `.snapshot()` off of `cy.stub()` and `cy.spy()` to disabled snapshots during those commands. For example: `cy.stub().snapshot(false)`. Addresses [#3849](https://togithub.com/cypress-io/cypress/issues/3849).
**Bugfixes:**
- The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes [#7874](https://togithub.com/cypress-io/cypress/issues/7874) and [#8193](https://togithub.com/cypress-io/cypress/issues/8193).
- Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes [#6813](https://togithub.com/cypress-io/cypress/pull/6813).
- The error `Maximum call stack size exceeded` will no longer throw when calling `scrollIntoView` on an element in the shadow dom. Fixes [#7986](https://togithub.com/cypress-io/cypress/issues/7986).
- Cypress [environment variables](https://on.cypress.io/environment-variables) that accept arrays as their value will now properly evaluate as arrays. Fixes [#6810](https://togithub.com/cypress-io/cypress/issues/6810).
- Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes [#6183](https://togithub.com/cypress-io/cypress/issues/6183).
- When [`experimentalShadowDomSupport`](https://on.cypress.io/experiments) is enabled, [`.parent()`](https://on.cypress.io/parent) and [`.parentsUntil()`](https://on.cypress.io/parentsuntil) commands now work correctly in shadow dom as well as passing a selector to [`.parents()`](https://on.cypress.io/parents) when the subject is in the shadow dom. Fixed in [#8202](https://togithub.com/cypress-io/cypress/pull/8202).
- Screenshots will now be correctly taken when a test fails in an `afterEach` or `beforeEach` hook after the hook has already passed. Fixes [#3744](https://togithub.com/cypress-io/cypress/issues/3744).
- Cypress will no longer report screenshots overwritten in a `cy.screenshot()` [`onAfterScreenshot`](https://on.cypress.io/screenshot#Get-screenshot-info-from-the-onAfterScreenshot-callback) option as a unique screenshot. Fixes [#8079](https://togithub.com/cypress-io/cypress/issues/8079).
- Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes [#2403](https://togithub.com/cypress-io/cypress/issues/2403).
- The "last used browser" will now be correctly remembered during `cypress open` if a non-default-channel browser was selected. Fixes [#8281](https://togithub.com/cypress-io/cypress/issues/8281).
- For TypeScript projects, `tsconfig.json` will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes [#7006](https://togithub.com/cypress-io/cypress/issues/7006) and [#7503](https://togithub.com/cypress-io/cypress/issues/7503).
- `reporterStats` now correctly show the number of passed and failed tests when a test passes but the `afterEach` fails. Fixes [#7730](https://togithub.com/cypress-io/cypress/issues/7730).
- The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes [#3559](https://togithub.com/cypress-io/cypress/pull/3559).
**Documentation Changes:**
- We have a new guide on Test Retries.
- Our [Migration Guide](https://on.cypress.io/migration-guide) has a new section for 5.0 migration.
**Misc:**
- Cypress now uses the [webpack preprocessor](https://togithub.com/cypress-io/cypress-webpack-preprocessor) by default to preprocess spec files.
- The **Runs** tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in [#8141](https://togithub.com/cypress-io/cypress/pull/8141).
- The type for the `Window` object returned from [`cy.window()`](https://on.cypress.io/window) is now correct. Addresses [#7856](https://togithub.com/cypress-io/cypress/issues/7856).
- The type definition for Cypress's `ApplicationWindow` can now be extended. Addresses [#7856](https://togithub.com/cypress-io/cypress/issues/7856).
- The type definition for `reporterOptions` has been added. Addresses [#7877](https://togithub.com/cypress-io/cypress/issues/7877).
**Dependency Updates**
- Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from `80` to `83`. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791).
- Upgraded bundled Node.js version from `12.8.1` to `12.14.1`. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791).
- Upgraded `chalk` from `2.4.2` to `4.1.0`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `cli-table3` from `0.5.1` to `0.6.0`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `electron` from `8.3.1` to `9.2.0`. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791) and [#8235](https://togithub.com/cypress-io/cypress/pull/8235).
- Upgraded `execa` from `1.0.0` to `4.0.2`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `express` from `4.16.4` to `4.17.1`. Addressed in [#8179](https://togithub.com/cypress-io/cypress/pull/8179).
- Upgraded `fs-extra` from `8.1.0` to `9.0.1`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `log-symbols` from `3.0.0` to `4.0.0`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `tmp` from `0.1.0` to `0.2.1`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
### [`v4.12.1`](https://togithub.com/cypress-io/cypress/releases/v4.12.1)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.12.0...v4.12.1)
_Released 8/5/2020_
**Bugfixes:**
- The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes [#7874](https://togithub.com/cypress-io/cypress/issues/7874).
- Skipping the last test before a nested suite with a `before` hook will now correctly run the tests in the suite following the skipped test. Fixes [#8086](https://togithub.com/cypress-io/cypress/issues/8086).
**Dependency Updates:**
- Upgraded `md5` from `2.2.1` to `2.3.0`. Addressed in [#8161](https://togithub.com/cypress-io/cypress/pull/8161).
- Upgraded `electron-context-menu` from `0.15.1` to `2.2.0`. Addressed in [#8180](https://togithub.com/cypress-io/cypress/pull/8180).
### [`v4.12.0`](https://togithub.com/cypress-io/cypress/releases/v4.12.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.11.0...v4.12.0)
_Released 8/3/2020_
**Features:**
- Now you can control whether screenshots are automatically taken on test failure during `cypress run` by setting [screenshotOnRunFailure](https://on.cypress.io/configuration#Screenshots) in your configuration. Addresses [#5029](https://togithub.com/cypress-io/cypress/issues/5029).
- The `pluginsFile` now has access to a readonly `version` property within the `config` object that returns the current Cypress version being run. This will allow plugins to better target specific Cypress versions. Addresses [#6352](https://togithub.com/cypress-io/cypress/issues/6352).
- During `cypress open`, you can now run a subset of all specs by [entering a text search filter and clicking 'Run n tests'](https://on.cypress.io/writing-and-organizing-tests#Run-filtered-specs). Addresses [#6581](https://togithub.com/cypress-io/cypress/issues/6581).
**Bugfixes:**
- `position: fixed` elements that have a parent with `pointer-events: none` will now correctly evaluate as visible. Fixes [#6675](https://togithub.com/cypress-io/cypress/issues/6675).
- Applications using custom elements will no longer trigger infinite XHR request loops. Fixes [#1068](https://togithub.com/cypress-io/cypress/issues/1068).
- When snapshotting the DOM, Cypress no longer causes `attributeChangedCallback` to be triggered on custom elements. Fixes [#7187](https://togithub.com/cypress-io/cypress/issues/7187).
- Spec files containing `+` characters now properly run in Cypress. Fixes [#5909](https://togithub.com/cypress-io/cypress/issues/5909).
- When using the `fx` shortcut in [`cy.route()`](https://on.cypress.io/route), an error is now thrown when the fixture file cannot be found. Fixes [#7818](https://togithub.com/cypress-io/cypress/issues/7818).
- Cypress no longer thrown `Cannot read property '__error' of null` error when passing a file containing `null` content to [`cy.fixture()`](https://on.cypress.io/fixture). Fixes [#8010](https://togithub.com/cypress-io/cypress/issues/8010).
- Values containing exponential operators passed to `--env` via the command line are now properly read. Fixes [#6891](https://togithub.com/cypress-io/cypress/issues/6891).
- The "Open in IDE" button no longer disappears from hooks when the tests are manually rerun. Fixes [#8094](https://togithub.com/cypress-io/cypress/issues/8094).
- When [`experimentalSourceRewriting`](https://on.cypress.io/experiments) is enabled, AST rewriting will no longer return an output before the body is done being written. This would happen when the response body was too large and the response would be sent while the body was still being modified. Fixes [#8043](https://togithub.com/cypress-io/cypress/issues/8043).
- When using [`.type()`](https://on.cypress.io/type), Cypress now properly types into an input within an iframe that auto focuses the input. Fixes [#8111](https://togithub.com/cypress-io/cypress/issues/8111).
**Misc:**
- Dependencies for our `cypress` npm package are no longer pinned to a specific version. This allows the use of `npm audit fix` to fix security vulnerabilities without needing a patch release from Cypress. Addresses [#8046](https://togithub.com/cypress-io/cypress/issues/8046).
- We now collect environment variables for AWS CodeBuild when recording to the Dashboard. Addressed [#8101](https://togithub.com/cypress-io/cypress/issues/8101).
- Types inside Module API are now accessible via the `CypressCommandLine` namespace. Addresses [#7309](https://togithub.com/cypress-io/cypress/issues/7309).
- We added more type definitions for the [`.should()`](https://on.cypress.io/should) command. Addresses [#5573](https://togithub.com/cypress-io/cypress/issues/5573).
- Cookie command's `expiry` property type is now a Number instead of a String. Addresses [#8144](https://togithub.com/cypress-io/cypress/issues/8144).
- There are some minor visual improvements to the Test Runner's Command Log when hovering, focusing and clicking on hook titles and pending tests. Addressed in [#8153](https://togithub.com/cypress-io/cypress/pull/8153).
**Dependency Updates:**
- Upgraded `jimp` from `0.13.0` to `0.14.0`. Addressed in [#8102](https://togithub.com/cypress-io/cypress/pull/8102).
- Upgraded `moment` from `2.26.0` to `2.27.0`. Addressed in [#8122](https://togithub.com/cypress-io/cypress/pull/8122).
### [`v4.11.0`](https://togithub.com/cypress-io/cypress/releases/v4.11.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.10.0...v4.11.0)
_Released 7/21/2020_
**Features:**
- You can now pass an `ensureScrollability: false` option to [`.scrollTo()`](https://on.cypress.io/scrollto) to skip checking whether the element is scrollable. Addresses [#1924](https://togithub.com/cypress-io/cypress/issues/1924).
- [`cy.clock()`](https://on.cypress.io/clock) now accepts Dates as well as a Number for now. Fixes [#7786](https://togithub.com/cypress-io/cypress/issues/7786).
**Bugfixes:**
- Running multiple specs within Firefox during `cypress run` on Windows will no longer fail trying to make a connection to the browser. Fixes [#6392](https://togithub.com/cypress-io/cypress/issues/6392).
- Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes [#6813](https://togithub.com/cypress-io/cypress/issues/6813).
- Fixed an issue where Cypress tests in Chromium-family browsers could randomly fail with the error "WebSocket is already in CLOSING or CLOSED state." Fixes [#7180](https://togithub.com/cypress-io/cypress/issues/7180).
- Taking a screenshot of an element that changes height upon scroll will no longer throw an `invalid for option "size"` error. Fixes [#6099](https://togithub.com/cypress-io/cypress/issues/6099).
- Setting `viewportHeight` or `viewportWidth` from within the [test configuration](https://on.cypress.io/writing-and-organizing-tests#test-configuration) now properly changes the viewport size for the duration of the suite or test.
- Setting deep objects and arrays on `config` within the `pluginsFile` now sets the values correctly. Fixes [#7959](https://togithub.com/cypress-io/cypress/issues/7959).
- The progress bar for `cy.wait()` now reflects the correct `requestTimeout` and `responseTimeout` of the command. Fixes [#7881](https://togithub.com/cypress-io/cypress/issues/7881).
- The command's progress bar will not longer restart when its parent test is collapsed in the Command Log. Fixes [#7912](https://togithub.com/cypress-io/cypress/issues/7912).
- Key value pairs sent to `ELECTRON_EXTRA_LAUNCH_ARGS` as `key=value` will now be properly read in. Fixes [#7994](https://togithub.com/cypress-io/cypress/issues/7994).
- Stubbed responses responding with an empty string to [`cy.route()`](https://on.cypress.io/route) now correctly display as 'xhr stub' in the Test Runner's Command Log. Fixes [#8018](https://togithub.com/cypress-io/cypress/issues/8018).
- Quickly reclicking the "Run All Tests" button in the Test Runners' Command Log will no longer throw errors about undefined properties and the tests will no longer hang. Fixes [#7968](https://togithub.com/cypress-io/cypress/issues/7968).
**Misc:**
- The error messages thrown from `pluginsFile` and `supportFile` now mention that `.ts` extensions are supported. Addresses [#7940](https://togithub.com/cypress-io/cypress/issues/7940).
- The style when focusing on tests in the Command Log has been updated. Addresses [#7855](https://togithub.com/cypress-io/cypress/issues/7855).
**Dependency Updates:**
- Upgraded `@benmalka/foxdriver` from `0.4.0` to `0.4.1`. Addressed in [#8040](https://togithub.com/cypress-io/cypress/pull/8040).
- Upgraded `firefox-profile` from `1.3.1` to `2.0.0`. Addressed in [#8000](https://togithub.com/cypress-io/cypress/pull/8000).
- Upgraded `fix-path` from `2.1.0` to `3.0.0`. Addressed in [#8028](https://togithub.com/cypress-io/cypress/pull/8028).
- Upgraded `human-interval` from `0.1.6` to `1.0.0`. Addressed in [#8031](https://togithub.com/cypress-io/cypress/pull/8031).
- Upgraded `lodash` from `4.17.15` to `4.17.19`. Addressed in [#7954](https://togithub.com/cypress-io/cypress/pull/7954).
- Upgraded `plist` from `2.1.0` to `3.0.1`. Addressed in [#8045](https://togithub.com/cypress-io/cypress/pull/8045).
- Upgraded `proxy-from-env` from `1.0.0` to `1.1.0`. Addressed in [#7900](https://togithub.com/cypress-io/cypress/pull/7900).
- Upgraded `resolve` from `1.13.1` to `1.17.0`. Addressed in [#7989](https://togithub.com/cypress-io/cypress/pull/7989).
- Upgraded `systeminformation` from `4.21.1` to `4.26.9`. Addressed in [#7975](https://togithub.com/cypress-io/cypress/pull/7975).
- Upgraded `uuid` from `3.3.2` to `8.2.0`. Addressed in [#7976](https://togithub.com/cypress-io/cypress/pull/7976), [#8002](https://togithub.com/cypress-io/cypress/pull/8002), and [#8011](https://togithub.com/cypress-io/cypress/pull/8011).
### [`v4.10.0`](https://togithub.com/cypress-io/cypress/releases/v4.10.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.9.0...v4.10.0)
_Released 7/7/2020_
**Features:**
- You can open a `before`, `beforeEach`, `after`, and `afterEach` hook definition in your IDE from the Test Runner's [Command Log](https://on.cypress.io/test-runner#Command-Log) by clicking the **Open in IDE** button. Addresses [#7793](https://togithub.com/cypress-io/cypress/issues/7793).
- `before`, `beforeEach`, `after`, and `afterEach` hook definitions now display separately in the Test Runner's [Command Log](https://on.cypress.io/test-runner#Command-Log) when defined in separate hook definitions. Addresses [#7779](https://togithub.com/cypress-io/cypress/issues/7779).
- You can now open a spec file directly from the **Tests** tab in the Test Runner by clicking the **Open in IDE** button. Addresses [#7713](https://togithub.com/cypress-io/cypress/issues/7713)
**Bugfixes:**
- HTTP requests taking longer than the default `responseTimeout` will no longer be prematurely canceled by the Cypress proxy layer. Fixes [#6426](https://togithub.com/cypress-io/cypress/issues/6426).
- Using Cypress commands to traverse the DOM on an application with a global `parent` variable will no longer throw Illegal Invocation errors. Fixes [#6412](https://togithub.com/cypress-io/cypress/issues/6412).
- When [`experimentalShadowDomSupport`](https://on.cypress.io/experiments#Shadow-DOM) is enabled, using [`.type()`](https://on.cypress.io/type) on an input in the Shadow DOM will not result in an error. Fixes [#7741](https://togithub.com/cypress-io/cypress/issues/7741).
- When [`experimentalShadowDomSupport`](https://on.cypress.io/experiments#Shadow-DOM) is enabled, checking for visibility on a shadow dom host element will no longer hang if the host element was the foremost element and had an ancestor with fixed position. Fixes [#7893](https://togithub.com/cypress-io/cypress/issues/7893).
- Debug logs from the `@benmalka/foxdriver` module will no longer appear if any `DEBUG` environment variable was set. Fixed [#7723](https://togithub.com/cypress-io/cypress/issues/7723).
**Misc:**
- We made some minor UI updates to the Test Runner. Addresses [#7732](https://togithub.com/cypress-io/cypress/issues/7732) and [#7803](https://togithub.com/cypress-io/cypress/issues/7803).
**Dependency Updates:**
- Upgraded `recast` from `0.18.8` to `0.19.1`. Addressed in [#7898](https://togithub.com/cypress-io/cypress/pull/7898).
### [`v4.9.0`](https://togithub.com/cypress-io/cypress/releases/v4.9.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.8.0...v4.9.0)
_Released 6/23/2020_
**Features:**
- An animated progress bar now displays on every command in the [Command Log](https://on.cypress.io/test-runner#Command-Log) indicating how long the command has left to run before reaching its command timeout. Addresses [#7642](https://togithub.com/cypress-io/cypress/issues/7642).
- There is now an [`experimentalFetchPolyfill`](https://on.cypress.io/experiments) configuration option. When this option is `true`, Cypress will automatically replace `window.fetch` with a polyfill that Cypress can spy on and stub. Addresses [#7710](https://togithub.com/cypress-io/cypress/issues/7710).
- You can now pass a `--quiet` flag to [`cypress run`](https://on.cypress.io/command-line#cypress-run) to silence any Cypress specific output from stdout. Addresses [#7714](https://togithub.com/cypress-io/cypress/issues/7714).
**Bugfixes:**
- [`cy.wait()`](https://on.cypress.io/wait) now correctly resolves when waiting for XHR requests that contain resource-like text in the XHR's query params or hash (like `.js`, .`html`, `.css`). [#7280](https://togithub.com/cypress-io/cypress/issues/7280).
- We fixed a regression in [4.6.0](https://on.cypress.io/changelog-4-6-0) where errors thrown from the application under test as strings would not be correctly handled. Fixes [#7590](https://togithub.com/cypress-io/cypress/issues/7590).
- We fixed a regression in [4.8.0](https://on.cypress.io/changelog-4-8-0) where [`.click()`](https://on.cypress.io/click) would hang if the subject had a shadow root and [`experimentalShadowDomSupport`](https://on.cypress.io/experiments#Shadow-DOM) was not enabled. Fixes [#7679](https://togithub.com/cypress-io/cypress/issues/7679).
- We fixed a regression in [4.6.0](https://on.cypress.io/changelog-4-6-0) so that [`.should('have.value')`](https://on.cypress.io/should) now properly asserts against `
Renovate configuration
:date: Schedule: "every weekend" in timezone America/New_York.
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
3.4.0
->5.4.0
Release Notes
cypress-io/cypress
### [`v5.4.0`](https://togithub.com/cypress-io/cypress/releases/v5.4.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.3.0...v5.4.0) _Released 10/14/2020_ **Features:** - You can now run [`cypress cache prune`](https://on.cypress.io/command-line#cypress-cache-prune) to delete all installed Cypress versions from the cache except for the currently-installed version. Addresses [#5972](https://togithub.com/cypress-io/cypress/issues/5972). - There's a new `--size` option for the [`cypress cache list`](https://on.cypress.io/command-line#cypress-cache-list) command that prints the sizes of the Cypress cache folders. Addresses [#6404](https://togithub.com/cypress-io/cypress/issues/6404). - For video recordings of runs, there is now a video chapter key for each test. If your video player supports chapters, you can move to the start of each test right away. Addresses [#3626](https://togithub.com/cypress-io/cypress/issues/3626). - In Windows, you can now append the browser type to the end of the path passed to the `--browser` flag, like `cypress open --browser C:/User/App/browser.exe:chrome`, to help detect the browser type. Addresses [#6389](https://togithub.com/cypress-io/cypress/issues/6389). - [`cy.viewport()`](https://on.cypress.io/viewport) has new `iphone-7`, `iphone-8`, and `iphone-se2` presets. Addressed in [#8624](https://togithub.com/cypress-io/cypress/issues/8624) - When there is a new version of Cypress available, the update modal has a new design with 'copy to clipboard' buttons to copy the upgrade commands. Addressed in [#8751](https://togithub.com/cypress-io/cypress/issues/8751). - The [Command Log](https://on.cypress.io/test-runner#Command-Log) can be hidden by passing the `CYPRESS_NO_COMMAND_LOG=1` environment variable during `cypress open` or `cypress run` to be used as a tool to debug performance issues. Addressed in [#8689](https://togithub.com/cypress-io/cypress/issues/8689). **Bugfixes:** - We fixed a regression in [5.0.0](https://on.cypress.io/changelog-5-8-0) where the `chromeWebSecurity` option had no effect in Electron. Fixes [#8399](https://togithub.com/cypress-io/cypress/issues/8399). - Tests will no longer hang and now properly throw when there is an error thrown from a `test:after:run` event listener. Fixes [#2271](https://togithub.com/cypress-io/cypress/issues/2271) and [#8701](https://togithub.com/cypress-io/cypress/issues/8701). - When a command is chained after [`.within()`](https://on.cypress.io/within) and "`cy.get()`" is called inside it, the scope will no longer permanently change. Fixes [#2106](https://togithub.com/cypress-io/cypress/issues/2106), [#4672](https://togithub.com/cypress-io/cypress/issues/4672), [#4757](https://togithub.com/cypress-io/cypress/issues/4757), and [#5183](https://togithub.com/cypress-io/cypress/issues/5183). - Dual commands like [`cy.contains()`](https://on.cypress.io/contains) when used after an [`.each()`](https://on.cypress.io/each) commands now query as expected. Fixes [#4921](https://togithub.com/cypress-io/cypress/issues/4921). - `/` is no longer added to the URL when `baseUrl` has param(s). Fixes [#2101](https://togithub.com/cypress-io/cypress/issues/2101). - When using [`cy.route2()`](https://on.cypress.io/route2) the route handler timeouts will no longer leak into other tests and cause random failures. Addressed in [#8727](https://togithub.com/cypress-io/cypress/issues/8727). - Re-running failed build steps in Bitbucket will no longer create a new run on the Cypress Dashboard. Fixes [#8720](https://togithub.com/cypress-io/cypress/issues/8720). - The forced garbage collection timer will no longer display when using a version of Firefox newer than 80. Fixes [#8725](https://togithub.com/cypress-io/cypress/issues/8725). - The browser dropdown is no longer covered when opened from the Runs tab in the Test Runner. Fixed in [#8745](https://togithub.com/cypress-io/cypress/issues/8745). - Fixed an issue where preprocessor-related plugins would cause tests not to run and a duplicate instance of Cypress to be spawned. Fixes [#8634](https://togithub.com/cypress-io/cypress/issues/8634). **Misc:** - Improved type definitions for [`cy.route2()`](https://on.cypress.io/route2). Addresses [#8694](https://togithub.com/cypress-io/cypress/issues/8694) and [#8782](https://togithub.com/cypress-io/cypress/issues/8782). - The Test Runner now shows an indicator in the footer and a toast notification if there is a new version available. Addressed in [#8702](https://togithub.com/cypress-io/cypress/issues/8702) and [#8803](https://togithub.com/cypress-io/cypress/issues/8803). **Dependency Updates:** - Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `83` to `85`. Addressed in [#8406](https://togithub.com/cypress-io/cypress/pull/8406). - Upgraded bundled Node.js version from `12.14.1` to `12.16.3`. Addressed in [#8406](https://togithub.com/cypress-io/cypress/pull/8406). - Upgraded `electron` from `9.2.1` to `10.1.3`. Addressed in [#8406](https://togithub.com/cypress-io/cypress/pull/8406). - Upgraded `firefox-profile` from `2.0.0` to `4.0.0`. Addressed in [#8786](https://togithub.com/cypress-io/cypress/pull/8786). - Upgraded `node-forge` from `0.9.0` to `0.10.0`. Addressed in [#8800](https://togithub.com/cypress-io/cypress/pull/8800). ### [`v5.3.0`](https://togithub.com/cypress-io/cypress/releases/v5.3.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.2.0...v5.3.0) _Released 9/28/2020_ **Features:** - Firefox support is now out of beta! 🎉 Firefox 80 and newer are now officially stable when used with Cypress. Addresses [#8241](https://togithub.com/cypress-io/cypress/issues/8241). - Versions of Firefox older than 80 can still be used, but will be subject to the `firefoxGcInterval` workaround. The desktop GUI will display a warning if such versions are used. **Bugfixes:** - Fixed a bug where `cy.route2` would not automatically JSONify an empty array handler. Addresses [#8532](https://togithub.com/cypress-io/cypress/issues/8532). - Fixed a bug where objects yielded by using `cy.wait` on a `cy.route2` alias would not always have a `response` property. Addresses [#8536](https://togithub.com/cypress-io/cypress/issues/8536). - Fixed an issue where `cy.route2` routes would not be able to intercept requests to HTTPS destinations on a different origin. Addresses [#8487](https://togithub.com/cypress-io/cypress/issues/8487). - Fixed an issue where subjects became `undefined` after certain assertion failures. Addresses [#5763](https://togithub.com/cypress-io/cypress/issues/5763). - Fixed an issue where a `cy.task` with no arguments passed would receive `null` as the first argument instead of `undefined`. Addresses [#5913](https://togithub.com/cypress-io/cypress/issues/5913). - Fixed an issue preventing users from passing the config-file argument when starting cypress through the node module API. Addresses [#8632](https://togithub.com/cypress-io/cypress/issues/8632). - Fixed an issue where `cy.visit()`s to a relative URL containing `..` would not work. Addresses [#5090](https://togithub.com/cypress-io/cypress/issues/5090). - Fixed an issue where Mocha hooks could still be triggered after the Test Runner was manually stopped. Addresses [#8621](https://togithub.com/cypress-io/cypress/issues/8621). - Fixed an issue where `cy.setCookie` failed when given a cookie name with a `__Host-` prefix. Addresses [#8261](https://togithub.com/cypress-io/cypress/issues/8261). - Fixed an issue where a misleading error was displayed when test code threw an exception with a non-`Error` object. Addresses [#7870](https://togithub.com/cypress-io/cypress/issues/7870). **Misc:** - The proxy now omits the `Content-Security-Policy-Report-Only` header the same way that it does for `Content-Security-Policy`. Addresses [#7936](https://togithub.com/cypress-io/cypress/issues/7936). - Added a `status` property to `CypressRunResult` objects. Addresses [#8580](https://togithub.com/cypress-io/cypress/issues/8580). - Updated types to no longer use deprecated Mocha interfaces. Addresses [#5795](https://togithub.com/cypress-io/cypress/issues/5795). - Passing an empty string to `CYPRESS_INSTALL_BINARY` now takes precedence over npm config. Addresses [#8488](https://togithub.com/cypress-io/cypress/issues/8488). ### [`v5.2.0`](https://togithub.com/cypress-io/cypress/releases/v5.2.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.1.0...v5.2.0) _Released 9/15/2020_ **Features:** - Added the configuration option `includeShadowDom` for enabling shadow DOM querying globally, per-suite, per-test, or programmatically. Addresses [#8442](https://togithub.com/cypress-io/cypress/issues/8442). - Added a `followRedirect` option to request interception with `cy.route2()`, allowing redirects to be followed before continuing to response interception. Addresses [#7967](https://togithub.com/cypress-io/cypress/issues/7967). - Added the capability to specify `delayMs` and `throttleKbps` when stubbing static responses with `cy.route2()`. Addresses [#7661](https://togithub.com/cypress-io/cypress/issues/7661). - Installing Cypress pre-releases no longer requires setting the `CYPRESS_BINARY_INSTALL` environment variable. Addresses [#8482](https://togithub.com/cypress-io/cypress/issues/8482). **Performance Improvements:** - Fixed a performance issue which led to CPU bottlenecking during Cypress runs. Addresses [#8012](https://togithub.com/cypress-io/cypress/issues/8012) and [#8297](https://togithub.com/cypress-io/cypress/issues/8297). **Bugfixes:** - Fixed an issue where using TypeScript path aliases in the plugins file would error. Addresses [#8555](https://togithub.com/cypress-io/cypress/issues/8555). - Fixed an issue where using `cy.contains()` within a shadow root would not yield the correct element. Addresses [#8494](https://togithub.com/cypress-io/cypress/issues/8494). - Fixed an issue where querying the shadow DOM in a `cy.within()` callback would throw the error `root.getRootNode is not a function`. Addresses [#8478](https://togithub.com/cypress-io/cypress/issues/8478). - Fixed an issue with `cy.type()` `{moveToStart}/{moveToEnd}` special characters moving the cursor to the current line instead of the entire text editable when typing in a `contenteditable` element. Addresses [#8465](https://togithub.com/cypress-io/cypress/issues/8465). - Fixed an issue where typing into a manually-focused number input would prepend the number instead of appending it. Addresses [#7170](https://togithub.com/cypress-io/cypress/issues/7170). - `cy.type()` now fires a `KeyboardEvent` event instead of an `Event` event. Addresses [#6125](https://togithub.com/cypress-io/cypress/issues/6125) and [#5650](https://togithub.com/cypress-io/cypress/issues/5650). - Fixed long selectors in the selector playground text input overflowing other page elements. Addresses [#8247](https://togithub.com/cypress-io/cypress/issues/8247) and [#4184](https://togithub.com/cypress-io/cypress/issues/4184). - Fixed an issue where assertions on `cy.getCookie()` would be called twice. Addresses [#6672](https://togithub.com/cypress-io/cypress/issues/6672). - Fixed an issue that caused the "Open in IDE" button on hooks and tests not to appear in Firefox. Addresses [#8257](https://togithub.com/cypress-io/cypress/issues/8257). - Fixed an issue causing Cypress to hang on test retry in run mode with certain assertions. Addresses [#8363](https://togithub.com/cypress-io/cypress/issues/8363). **Documentation Changes:** - Fixed examples of delaying and throttling responses with `cy.route2()`. Addresses [#8489](https://togithub.com/cypress-io/cypress/issues/8489). - Added examples of using a response function with `cy.route2()`. Addresses [#8468](https://togithub.com/cypress-io/cypress/issues/8468). - Removed unmaintained languages. English docs is the only supported language by the Cypress team. We greatly appreciate the contributions from the community for other languages, but these docs are largely stale, unmaintained, and partial. The Cypress team will seek out more scalable docs internalization implementation in the future. **Misc:** - The `experimentalShadowDomSupport` configuration flag has been removed. It is no longer necessary to enable shadow DOM testing. - Improved the error message when the subject provided to `cy.shadow()` is not a shadow host. Addresses [#8530](https://togithub.com/cypress-io/cypress/issues/8530). - Improved the error message when the Cypress binary is not executable. It now recommends trying to clear the cache and re-install. Addresses [#8397](https://togithub.com/cypress-io/cypress/issues/8397). - Added missing type declarations for the `cy.route2()` command. - Updated the type declaration for `Cypress.Commands.add()`, adding `Promise` to the list of allowed return types. Addresses [#7807](https://togithub.com/cypress-io/cypress/issues/7807). ### [`v5.1.0`](https://togithub.com/cypress-io/cypress/releases/v5.1.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.0.0...v5.1.0) _Released 9/1/2020_ **Features:** - Introducing _experimental_ full network stubbing support 🎉. - With `experimentalNetworkStubbing` enabled, the `cy.route2` command is available. - By using [cy.route2()](https://on.cypress.io/route2), your tests can intercept, modify, and wait on any type of HTTP request originating from your app, including `XMLHttpRequest`s, `fetch` requests, beacons, and subresources (like iframes and scripts). - Outgoing HTTP requests can be modified before reaching the destination server, and the HTTP response can be intercepted as well before it reaches the browser. - See the [cy.route2()](https://on.cypress.io/route2) docs for more information on how to enable this experiment. - `cy.trigger()` now accepts an `eventConstructor` option for specifying the constructor with which to create the event to trigger. Addresses [#5650](https://togithub.com/cypress-io/cypress/issues/5650). **Bugfixes:** - Improved warnings for when user is exceeding test limits of the free Dashboard plan. Addresses [#8409](https://togithub.com/cypress-io/cypress/issues/8409). - Added `retries` to `TestOptions` types. Addresses [#8405](https://togithub.com/cypress-io/cypress/issues/8405). - Added types for `specType` field on `Cypress.spec`. Addresses [#8256](https://togithub.com/cypress-io/cypress/issues/8256). - Fixed a typo in type definitions. Addresses [#8417](https://togithub.com/cypress-io/cypress/issues/8417). - Cypress now resolves and loads tsconfig.json for TypeScript projects starting from the plugins directory. Addresses [#8359](https://togithub.com/cypress-io/cypress/issues/8359). - Fixed an issue where, if npm config's `noproxy` is set, unexpected behavior could occur. Addresses [#8287](https://togithub.com/cypress-io/cypress/issues/8287). - Fixed an issue where nesting hooks within other hooks caused the test to never finish. Addresses [#8350](https://togithub.com/cypress-io/cypress/issues/8350). - Fixed an issue in where tests would unexpectedly fail with a "Can't resolve 'async_hooks'" error. Addresses [#8375](https://togithub.com/cypress-io/cypress/issues/8375). - Fixed an issue where return values from blob utils were mistaken for promises and could cause errors. Addresses [#8365](https://togithub.com/cypress-io/cypress/issues/8365). - Fixed an issue with loading `.mjs` files. Addresses [#8361](https://togithub.com/cypress-io/cypress/issues/8361). - Fixed an issue causing tests to run slowly in Electron. Addresses [#7930](https://togithub.com/cypress-io/cypress/issues/7930). - Using `.should` with only chainer assertions will now throw an error. Addresses [#883](https://togithub.com/cypress-io/cypress/issues/883). - `cy.trigger()` now includes the `view` property in the event object when appropriate. Addresses [#3686](https://togithub.com/cypress-io/cypress/issues/3686). - Fixed an issue where Cypress would not detect newer 64-bit installations of Chrome on Windows. Addresses [#8425](https://togithub.com/cypress-io/cypress/issues/8425). - Fixed an issue where Cypress would not detect per-user Firefox installations on Windows. Addresses [#8432](https://togithub.com/cypress-io/cypress/issues/8432). **Dependency Updates:** - Updated dependency `iconv-lite` to version `0.6.2`. Addresses [#8387](https://togithub.com/cypress-io/cypress/issues/8387). - Updated dependency `command-exists` to version `1.2.9`. Addresses [#8388](https://togithub.com/cypress-io/cypress/issues/8388). - Updated dependency `electron` to version `9.2.1`. Addresses [#8436](https://togithub.com/cypress-io/cypress/issues/8436). ### [`v5.0.0`](https://togithub.com/cypress-io/cypress/releases/v5.0.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.12.1...v5.0.0) _Released 8/19/2020_ **Summary:** Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details. **Breaking Changes:** **Please read our [Migration Guide](https://on.cypress.io/migration-guide) which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.** - The [`cypress-plugin-retries`](https://togithub.com/Bkucera/cypress-plugin-retries) plugin has been deprecated in favor of test retries built into Cypress. Addresses [#1313](https://togithub.com/cypress-io/cypress/issues/1313). - The [`Cypress.Cookies.defaults()`](https://on.cypress.io/cookies) `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in [#7782](https://togithub.com/cypress-io/cypress/issues/7782). - The `blacklistHosts` configuration has been renamed to [`blockHosts`](https://on.cypress.io/configuration#Notes) to more closely reflect its behavior. Addressed in [#7622](https://togithub.com/cypress-io/cypress/issues/7622). - The [`cy.server()`](https://on.cypress.io/server) `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses [#6642](https://togithub.com/cypress-io/cypress/issues/6642). - `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791). - Values yielded by [`cy.setCookie()`](https://on.cypress.io/setcookie), [`cy.getCookie()`](https://on.cypress.io/getcookie), and [`cy.getCookies()`](https://on.cypress.io/getcookies) will now contain the `sameSite` property if specified. Addresses [#6892](https://togithub.com/cypress-io/cypress/issues/6892). - The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses [#6892](https://togithub.com/cypress-io/cypress/issues/6892). - The return type of the [`Cypress.Blob`](https://on.cypress.io/blob) methods `arrayBufferToBlob`, `base64StringToBlob`, `binaryStringToBlob`, and `dataURLToBlob` have changed from `PromiseRenovate configuration
:date: Schedule: "every weekend" in timezone America/New_York.
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.