cypress-io/cypress
### [`v6.4.0`](https://togithub.com/cypress-io/cypress/releases/v6.4.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.3.0...v6.4.0)
_Released 2/1/2021_
**Features:**
- Added a command log entry for when a file is donwloaded. Addresses [#14749](https://togithub.com/cypress-io/cypress/issues/14749).
- The `delayMs` option for `cy.intercept()` has been renamed to `delay`. `delayMs` will still work, but it is deprecated and will be removed in a future release. Addresses [#14822](https://togithub.com/cypress-io/cypress/issues/14822).
**Bugfixes:**
- Fixed an issue with handling spec paths containing special characters. Addresses [#14659](https://togithub.com/cypress-io/cypress/issues/14659).
- Fixed an issue where Cypress Studio would not prompt to start adding commands after visiting an inputted url. Addresses [#14688](https://togithub.com/cypress-io/cypress/issues/14688).
- Fixed an issue where Cypress Studio could generate empty `cy.type()` commands. Addresses [#14684](https://togithub.com/cypress-io/cypress/issues/14684).
- Fixed an issue where Cypress Studio prompts user to enter a URL even if an error has already occured. Addresses [#14686](https://togithub.com/cypress-io/cypress/issues/14686).
- Fixed an issue where Cypress Studio would not reload tests with `watchForFileChanges: false`. Addresses [#14744](https://togithub.com/cypress-io/cypress/issues/14744).
- Fixed an issue where Cypress studio would add a `cy.click()` before `cy.type()`. Addresses [#14685](https://togithub.com/cypress-io/cypress/issues/14685).
- Fixed an issue where Cypress Studio could use the wrong selector for a click event. Addresses [#14658](https://togithub.com/cypress-io/cypress/issues/14658).
- Fixed multi-select support for Cypress Studio. Addresses [#14743](https://togithub.com/cypress-io/cypress/issues/14743).
- Improved the UI for command failures within Cypress Studio. Addresses [#14691](https://togithub.com/cypress-io/cypress/issues/14691).
- The Selector Playground is now closed automatically when Cypress Studio is opened. [#14689](https://togithub.com/cypress-io/cypress/issues/14689).
- Fixed an issue with `cy.intercept` where aliases set via `req.alias` containing a period character would not work as expected. Addresses [#14444](https://togithub.com/cypress-io/cypress/issues/14444).
- Fixed an issue where delays set using `cy.intercept` would not work as expected. Addresses [#14446](https://togithub.com/cypress-io/cypress/issues/14446).
- Reverted a change to how the Chrome DevTools Protocol is established. Instead of using stdio and then falling back to TCP, Cypress now only uses TCP to try to connect to Chrome DevTools Protocol. Addresses [#14819](https://togithub.com/cypress-io/cypress/issues/14819).
- Fixed an issue causing a webpack compilation error when a browserslist is present in project root. Addresses [#8864](https://togithub.com/cypress-io/cypress/issues/8864).
**Misc:**
- Added more details to the "no specs found" error. Addresses [#14532](https://togithub.com/cypress-io/cypress/issues/14532).
- Added more resolved config property types. Addresses [#14392](https://togithub.com/cypress-io/cypress/issues/14392).
- Added UTM parameters to external links. Addresses [#14741](https://togithub.com/cypress-io/cypress/issues/14741).
**Dependency Updates:**
- Upgraded `recast` to version `0.20.4`. Addresses [#14623](https://togithub.com/cypress-io/cypress/issues/14623).
- Upgraded `registry-js` to version `1.13.0`. Addresses [#14668](https://togithub.com/cypress-io/cypress/issues/14668).
- Upgraded `@cypress/get-windows-proxy` to version `1.6.2`. Addresses [#14711](https://togithub.com/cypress-io/cypress/issues/14711).
- Upgraded `systeminformation` to version `4.31.1`. Addresses [#14715](https://togithub.com/cypress-io/cypress/issues/14715).
- Upgraded `semantic-release` to version `17.2.3`. Addresses [#14713](https://togithub.com/cypress-io/cypress/issues/14713).
- Upgraded `electron to version`11.2.1\`. Addresses [#14764](https://togithub.com/cypress-io/cypress/issues/14764).
### [`v6.3.0`](https://togithub.com/cypress-io/cypress/releases/v6.3.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.2.1...v6.3.0)
_Released 1/19/2021_
**Features:**
- **Cypress Studio** provides a visual way to generate tests within the Test Runner, by _recording interactions_ against the application under test. Cypress Studio is an experimental feature that can be enabled by adding the [`experimentalStudio`](https://on.cypress.io/experiments) attribute to your configuration, `cypress.json` by default. Address [#73](https://togithub.com/cypress-io/cypress/issues/73).
- **You can now test file downloads in Cypress** without the download prompt displaying. Any files downloaded while testing file downloads will be stored in the [`downloadsFolder`](https://on.cypress.io/configuration#Downloads) which is set to `cypress/downloads` by default. The `downloadsFolder` will be deleted before each run unless [`trashAssetsBeforeRuns`](https://on.cypress.io/configuration#Downloads) is set to `false`. Addresses [#949](https://togithub.com/cypress-io/cypress/issues/949).
**Bugfixes:**
- When an uncaught exception is thrown outside a suite with an `.only`, the error will now correctly display in the Command Log. Fixes [#14455](https://togithub.com/cypress-io/cypress/issues/14455).
- Cypress will no longer crash when no record key is provided to the `--key` flag when followed by other CLI flags. Fixed [#14593](https://togithub.com/cypress-io/cypress/issues/14593).
- Extra screenshots will no longer be taken when tests are retried when there is a failure in an `afterEach` hook. Fixes [#9209](https://togithub.com/cypress-io/cypress/issues/9209).
- Having `waitForAnimations` set to `false` no longer affects whether Cypress fires actions on inner elements. Fixes [#14370](https://togithub.com/cypress-io/cypress/issues/14370).
- We fixed a regression in [5.0.0](https://on.cypress.io/changelog-5-0-0) that would cause string `CYPRESS_` prefixed env variables containing commas to be parsed as multiple values. Fixes [#8818](https://togithub.com/cypress-io/cypress/issues/8818).
- We fixed a regression in [4.9.0](https://on.cypress.io/changelog-4-9-0) where asserting `have.value` on an undefined subject would throw an error. Fixes [#14359](https://togithub.com/cypress-io/cypress/issues/14359).
- We updated the CDP connection to attempt to use the stdio transport first with Chrome 72 and above, before falling back to using TCP. This should remediate issues causing sporadic "Cypress failed to make a connection to the Chrome DevTools Protocol after retrying" errors. Fixes [#6540](https://togithub.com/cypress-io/cypress/issues/6540), [#7450](https://togithub.com/cypress-io/cypress/issues/7450), [#8674](https://togithub.com/cypress-io/cypress/issues/8674), and [#8986](https://togithub.com/cypress-io/cypress/issues/8986).
**Misc:**
- We removed several Chrome flags that are no longer supported. Addressed in [#14582](https://togithub.com/cypress-io/cypress/issues/14582).
**Dependency Updates:**
- Replaced deprecated `node-sass` with `sass`. Addressed in [#14415](https://togithub.com/cypress-io/cypress/pull/14415).
- Upgraded `debug` from `4.1.1` to `4.3.1`. Addressed in [#14583](https://togithub.com/cypress-io/cypress/issues/14583).
- Upgraded `electron` from `11.0.3` to `11.2.0`. Addressed in [#14567](https://togithub.com/cypress-io/cypress/issues/14567).
- Upgraded `electron-builder` from `22.8.0` to `22.9.1`. Addressed in [#14493](https://togithub.com/cypress-io/cypress/issues/14493).
- Upgraded `shell-env` from `3.0.0` to `3.0.1`. Addressed in [#14622](https://togithub.com/cypress-io/cypress/issues/14622).
- Upgraded `uuid` from `8.2.0` to `8.3.2`. Addressed in [#14170](https://togithub.com/cypress-io/cypress/issues/14170).
### [`v6.2.1`](https://togithub.com/cypress-io/cypress/releases/v6.2.1)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.2.0...v6.2.1)
_Released 1/4/2021_
**Bugfixes:**
- Test retries, when retrying on several failed tests, will no longer cause hanging during `cypress run`. Fixes [#9040](https://togithub.com/cypress-io/cypress/issues/9040).
- `multipart/form-data` is no longer wrongly encoded when using [`cy.intercept()`](https://on.cypress.io/intercept). This should prevent `Unexpected end of multipart data` errors on the back end service where the request was pointing to. Fixes [#9359](https://togithub.com/cypress-io/cypress/issues/9359).
- [`cy.contains()`](https://on.cypress.io/contains) no longer throws an error when a single quote is used inside its argument when RegExp. Fixes [#8626](https://togithub.com/cypress-io/cypress/issues/8626).
- Passing `capture: 'runner'` to a [`cy.screenshot()`](https://on.cypress.io/screenshot) command inside [`.within()`](https://on.cypress.io/within) now screenshots the entire Test Runner as expected. Fixes [#14253](https://togithub.com/cypress-io/cypress/issues/14253).
- [`Cypress.dom.isJquery()`](https://on.cypress.io/dom#Is-jQuery) now always returns a boolean instead of `undefined` sometimes. Fixes [#14278](https://togithub.com/cypress-io/cypress/issues/14278).
- `calledOnceWith` and `calledOnceWithExactly` sinon matchers no longer throw an error when used within Cypress. Fixes [#9644](https://togithub.com/cypress-io/cypress/issues/9644).
- We now pass `--disable-backgrounding-occluded-windows` as a default flag to Chrome to prevent backgrounding rendering when the Cypress window is occluded. Fixes [#9604](https://togithub.com/cypress-io/cypress/issues/9604).
**Misc:**
- After login, if a name is undefined on your profile, the Test Runner will show the profile's email and link to instructions to update the name. Addresses [#14288](https://togithub.com/cypress-io/cypress/issues/14288).
**Dependency Updates:**
- Upgraded `devtools-protocol` from `0.0.734984` to `0.0.839267`. Addressed in [#14353](https://togithub.com/cypress-io/cypress/issues/14353).
- Upgraded `electron` from `11.0.3` to `11.1.1`. Addressed in [#14352](https://togithub.com/cypress-io/cypress/issues/14352).
### [`v6.2.0`](https://togithub.com/cypress-io/cypress/releases/v6.2.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.1.0...v6.2.0)
_Released 12/21/2020_
**Features:**
- You can now listen to `before:run` and `after:run` events in the plugins file. See the [`before:run`](https://on.cypress.io/before-run-api) and [`after:run`](https://on.cypress.io/after-run-api) docs for more information. Addressed in [#14238](https://togithub.com/cypress-io/cypress/issues/14238) and [#14263](https://togithub.com/cypress-io/cypress/issues/14263).
- You can now listen to `before:spec` and `after:spec` events in the plugins file. See the [`before:spec`](https://on.cypress.io/before-spec-api) and [`after:spec`](https://on.cypress.io/after-spec-api) docs for more information. Addressed in [#9646](https://togithub.com/cypress-io/cypress/issues/9646) and [#14178](https://togithub.com/cypress-io/cypress/issues/14178).
- The `Timed out retrying` error message now displays the amount of time Cypress retried. Addresses [#5781](https://togithub.com/cypress-io/cypress/issues/5781).
**Bugfixes:**
- Getting an alias of [`cy.intercept()`](https://on.cypress.io/intercept) using [`cy.get()`](https://on.cypress.io/get) will no longer always yield `null`. Fixes [#9306](https://togithub.com/cypress-io/cypress/issues/9306).
- [`cy.intercept()`](https://on.cypress.io/intercept) will now automatically responds to CORS preflight requests (HTTP `OPTIONS` requests) that match defined routes. Fixes [#9599](https://togithub.com/cypress-io/cypress/issues/9599).
- Response errors from `forceNetworkError` can now be awaited using [`cy.intercept()`](https://on.cypress.io/intercept) and [`cy.wait()`](https://on.cypress.io/wait). Fixes [#9062](https://togithub.com/cypress-io/cypress/issues/9062).
- Using [`cy.log()`](https://on.cypress.io/log) inside [`.then()`](https://on.cypress.io/then) no longer breaks the subject value in the command chain. Fixes [#8084](https://togithub.com/cypress-io/cypress/issues/8084).
- Using [`Cypress.Commands.overwrite`](https://on.cypress.io/custom-commands#Overwrite-Existing-Commands) to overwrite [`.then()`](https://on.cypress.io/then) now preserves the proper `this` context and sets aliases correctly. Fixes [#5101](https://togithub.com/cypress-io/cypress/issues/5101).
- Using [`Cypress.Commands.overwrite`](https://on.cypress.io/custom-commands#Overwrite-Existing-Commands) to overwrite [`cy.route()`](https://on.cypress.io/route) or [`cy.intercept()`](https://on.cypress.io/intercept) and wait on its alias now properly works. Fixes [#3890](https://togithub.com/cypress-io/cypress/issues/3890) and [#9580](https://togithub.com/cypress-io/cypress/issues/9580).
- Cypress no longer fails to find specs if you set the fixtures folder to be the same as the integration folder. Fixes [#14226](https://togithub.com/cypress-io/cypress/issues/14226).
**Misc:**
- `scrollBehavior` is now an allowed type when passed as test configuration. Addresses [#9643](https://togithub.com/cypress-io/cypress/issues/9643).
- The `FileObject` type for the file argument of the `file:preprocessor` event now includes the `EventEmitter` type. Addresses [#9276](https://togithub.com/cypress-io/cypress/issues/9276).
**Dependency Updates:**
- Upgraded `electron` from `11.0.2` to `11.0.3`. Addressed in [#9409](https://togithub.com/cypress-io/cypress/issues/9409).
### [`v6.1.0`](https://togithub.com/cypress-io/cypress/releases/v6.1.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.0.1...v6.1.0)
_Released 12/07/2020_
**Features:**
- There's a new `scrollBehavior` configuration option that controls the viewport position when an element is scrolled prior to action commands. Possible values are `'top'`, `'bottom'`, `'center'`, `'nearest'`, and `false`, with `'top'` being the default. `scrollBehavior: false` disables scrolling altogether. `scrollBehavior` can be specified in [global configuration](https://on.cypress.io/configuration#Actionability), [test configuration](https://on.cypress.io/writing-and-organizing-tests#Test-Configuration) or individual [action commands](https://on.cypress.io/interacting-with-elements) via `options`. Addresses [#871](https://togithub.com/cypress-io/cypress/issues/871) and [#4356](https://togithub.com/cypress-io/cypress/issues/4356).
- The **Tests** tab in the Test Runner now orders folders before files. This matches the ordering of most IDEs' file explorers. Addresses [#7334](https://togithub.com/cypress-io/cypress/issues/7334).
**Bugfixes:**
- Responses stubbed from [`cy.intercept()`](https://on.cypress.io/intercept) will now automatically set `Access-Control-Allow-Origin` and `Access-Control-Allow-Credentials` to permissive values unless explicitly overridden. Fixes [#9264](https://togithub.com/cypress-io/cypress/issues/9264).
- The `Cannot read property "fireChangeEvent" of undefined` error will no longer throw during a race condition when using [`cy.intercept()`](https://on.cypress.io/intercept). [#9170](https://togithub.com/cypress-io/cypress/issues/9170)
- HTTP responses that cannot have a body (like HTTP 304 and HTTP 204) can now be awaited using [`cy.intercept()`](https://on.cypress.io/intercept). Fixes [#8934](https://togithub.com/cypress-io/cypress/issues/8934) and [#8999](https://togithub.com/cypress-io/cypress/issues/8999).
- We fixed an issue where HTTP redirects could not be awaited using [`cy.intercept()`](https://on.cypress.io/intercept) unless dynamically intercepted. Addressed in [#9097](https://togithub.com/cypress-io/cypress/issues/9097).
- Tests will no longer hang in certain situations when there's an error in a `before()` hook. Fixes [#9162](https://togithub.com/cypress-io/cypress/issues/9162).
- We no longer strip `/` from URLs when they are explicitly passed with query paramaters. Fixes [#9360](https://togithub.com/cypress-io/cypress/issues/9360).
**Deprecations:**
Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations.
- [`Cypress.moment`](https://on.cypress.io/moment) has been deprecated and will be replaced in a future release. Consider migrating to a different datetime formatter. Addresses [#8714](https://togithub.com/cypress-io/cypress/issues/8714).
**Misc:**
- We collect more environment variables from Bitbucket to better detect reruns. Addresses [#9309](https://togithub.com/cypress-io/cypress/issues/9309).
- `waitForAnimations` and `animationDistanceThreshold` types are now included for all actionable commands. Addresses [#8854](https://togithub.com/cypress-io/cypress/issues/8854).
**Dependency Updates:**
- Upgraded `mocha-junit-reporter` from `1.23.1` to `2.0.0`. Addressed in [#9528](https://togithub.com/cypress-io/cypress/issues/9528).
### [`v6.0.1`](https://togithub.com/cypress-io/cypress/releases/v6.0.1)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.0.0...v6.0.1)
_Released 11/30/2020_
**Bugfixes:**
- Chromium based browsers on version 87 will no longer show recorded videos as frozen or blank. Fixes [#9265](https://togithub.com/cypress-io/cypress/issues/9265).
- We fixed a regression introduced in [5.0.0](https://on.cypress.io/changelog#5-0-0) that would cause an `Option 'sourceMap' cannot be specified with option 'inlineSourceMap'` error to throw when setting `sourceMap` in your tsconfig. Fixes [#8477](https://togithub.com/cypress-io/cypress/issues/8477).
- [`cy.screenshot()`](https://on.cypress.io/screenshot) no longer throws an `"offset" is out of range` error when Cypress attempts to crop the image. Fixes [#2034](https://togithub.com/cypress-io/cypress/issues/2034).
- [`cy.screenshot()`](https://on.cypress.io/screenshot) types won't mistakenly display the command as deprecated. Fixes [#9303](https://togithub.com/cypress-io/cypress/issues/9303).
- Lower-cased HTTP methods can now be used with [`cy.intercept()`](https://on.cypress.io/intercept). Fixes [#9313](https://togithub.com/cypress-io/cypress/issues/9313).
### [`v6.0.0`](https://togithub.com/cypress-io/cypress/releases/v6.0.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.6.0...v6.0.0)
_Released 11/23/2020_
**Summary:**
Cypress now offers full network stubbing support with the introduction of the [`cy.intercept()`](https://on.cypress.io/intercept) command (previously `cy.route2()`). With [`cy.intercept()`](https://on.cypress.io/intercept) your tests can intercept, modify and wait on any type of HTTP request originating from your app.
**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 6.0.**
- Cypress now always throws an error when asserting on an element that doesn't exist in the DOM (unless you're asserting that the element should `not.exist`). Assertions such as `not.visible`, `not.contains`, `not.have.class`, etc will now fail when used on non-existent DOM elements. Addresses [#205](https://togithub.com/cypress-io/cypress/issues/205).
- DOM elements where the CSS style (or ancestors) are `opacity: 0` are no longer considered visible. However these are still considered [actionable](https://on.cypress.io/interacting-with-elements) and "any action commands" interacting-with-elements#Actionability used to interact with the element will perform the action. This matches browser's implementation on how they regard elements with `opacity: 0`. Addresses [#4474](https://togithub.com/cypress-io/cypress/issues/4474).
- The type yielded by [`cy.wait(alias)`](https://on.cypress.io/wait) has changed in order to support use of [`cy.intercept()`](https://on.cypress.io/intercept). Addressed in [#9266](https://togithub.com/cypress-io/cypress/issues/9266).
- The `experimentalNetworkStubbing` option has been removed and made the default behavior. You can safely removed this configuration option. Addressed in [#9185](https://togithub.com/cypress-io/cypress/issues/9185).
- When using [`.type()`](https://on.cypress.io/type) and [`.click()`](https://on.cypress.io/click) on elements inside a `contenteditable` element, the events are now properly triggered on the inside elements. This may cause unintended consequences if you were relying on the previous behavior. Addressed in [#9066](https://togithub.com/cypress-io/cypress/issues/9066).
- We removed several deprecation errors around APIs that were removed in versions of Cypress prior to 4.0.0. This will not cause any changes for anyone upgrading from a 4.0+ version of Cypress. For a full list of all APIs affected see [#8946](https://togithub.com/cypress-io/cypress/issues/8946).
- We updated our HTTP status codes and reason phrases to match Node.js `http.STATUS_CODES`. If you have code that relies on a reason phrase, then this could affect you. Addressed in [#8969](https://togithub.com/cypress-io/cypress/issues/8969).
- JSON request and response bodies captured by [`cy.intercept()`](https://on.cypress.io/intercept) are now automatically parsed, removing the need to manually do `JSON.parse`. Addressed in [#9280](https://togithub.com/cypress-io/cypress/issues/9280).
**Deprecations:**
Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations.
- `cy.server()` and `cy.route()` have been deprecated. In a future release, support for `cy.server()` and `cy.route()` will be moved to a plugin. We encourage you to use [`cy.intercept()`](https://on.cypress.io/intercept) instead. Addressed in [#9185](https://togithub.com/cypress-io/cypress/issues/9185).
- `experimentalFetchPolyfill` has been deprecated. We encourage you to use [`cy.intercept()`](https://on.cypress.io/intercept) to intercept requests using the Fetch API instead.
- `cy.route2()` was renamed to [`cy.intercept()`](https://on.cypress.io/intercept). We encourage you to update usages of `cy.route2()` to use [`cy.intercept()`](https://on.cypress.io/intercept). Addressed in [#9182](https://togithub.com/cypress-io/cypress/issues/9182).
**Features:**
- The new [`cy.intercept()`](https://on.cypress.io/intercept) command can be used to manage the behavior of HTTP requests at the network layer. Addressed in [#9182](https://togithub.com/cypress-io/cypress/issues/9182).
- We now pass `—disable-dev-shm-usage` to the Chrome browser flags by default. This will write shared memory files into `/tmp` instead of `/dev/shm`. If you're passing this flag in your `plugins` file, you can now remove this code. Addresses [#5336](https://togithub.com/cypress-io/cypress/issues/5336).
- A warning is now displayed when passing invalid configuration keys through the CLI. Addresses [#428](https://togithub.com/cypress-io/cypress/issues/428).
- The `cypress version` command now also displays the current Electron and bundled Node versions. Addresses [#9180](https://togithub.com/cypress-io/cypress/issues/9180).
- The `cypress version` command now accepts a `--component` flag that allows you to print the version of specific components of Cypress. ie Electron, Node, etc. Addresses [#9214](https://togithub.com/cypress-io/cypress/issues/9214).
**Bugfixes:**
- We fixed a regression introduced in [3.5.0](https://on.cypress.io/changelog#3-5-0) that would cause [`.type()`](https://on.cypress.io/type) to not type the entire string when focus was called away from the target element. Fixes [#9254](https://togithub.com/cypress-io/cypress/issues/9254).
- [`.type()`](https://on.cypress.io/type) and [`.click()`](https://on.cypress.io/click) now properly work on elements inside a `contenteditable` element. Fixes [#2717](https://togithub.com/cypress-io/cypress/issues/2717) and [#7721](https://togithub.com/cypress-io/cypress/issues/7721).
- We fixed a regression introduced in [5.6.0](https://on.cypress.io/changelog#5-6-0) that would cause the Test Runner to crashes and display a white page when switching tabs while tests are running. Fixes [#9151](https://togithub.com/cypress-io/cypress/issues/9151).
- Fixed an issue where `Content-Length` for `cy.route2` request bodies could be incorrectly recalculated. Fixes [#9166](https://togithub.com/cypress-io/cypress/issues/9166).
**Documentation Changes:**
- Our [Migration Guide](https://on.cypress.io/migration-guide) has a new section for 6.0 migration.
- Many of our docs examples have been updated to use [`cy.intercept()`](https://on.cypress.io/intercept) in place of `cy.route()` including our [Network Requests](https://on.cypress.io/network-requests) doc.
**Misc:**
- Added the type of `redirects` and changed `redirectedToUrl` optional for Response types. Addresses [#9275](https://togithub.com/cypress-io/cypress/issues/9275).
**Dependency Updates**
- Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `85` to `87`. Addressed in [#9222](https://togithub.com/cypress-io/cypress/pull/9222).
- Upgraded bundled Node.js version from `12.16.3` to `12.18.3`. Addressed in [#9222](https://togithub.com/cypress-io/cypress/pull/9222).
- Upgraded `electron` from `10.1.5` to `11.0.2`. Addressed in [#9222](https://togithub.com/cypress-io/cypress/pull/9222).
### [`v5.6.0`](https://togithub.com/cypress-io/cypress/releases/v5.6.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.5.0...v5.6.0)
_Released 11/09/2020_
**Features:**
- You can now dynamically add aliases for requests intercepted via [`cy.route2()`](https://on.cypress.io/route2). [See an example](https://on.cypress.io/route2#Aliasing-individual-requests). Addresses [#387](https://togithub.com/cypress-io/cypress/issues/387).
- You can now run all integration specs or all component specs separately (or a filtered list of specs) by clicking the appropriate button in the Test Runner in the _Tests_ tab. Addresses [#8203](https://togithub.com/cypress-io/cypress/issues/8203).
- Added a new modifier syntax to [`cy.type()`](https://on.cypress.io/type). You can now type shortcuts like `{ctrl+z}`. Addressed in [#5694](https://togithub.com/cypress-io/cypress/issues/5694).
- We now show a modal with release notes when available when there is a new version of Cypress. Addressed in [#9006](https://togithub.com/cypress-io/cypress/issues/9006).
- In the Test Runner's _Settings_ and _Runs_ tab you can now quickly copy the project id configuration and record key using a copy to clipboard icon. Addresses [#9002](https://togithub.com/cypress-io/cypress/issues/9002).
**Bugfixes:**
- Fixed a regression introduced in [4.12.0](https://on.cypress.io/changelog#4-12-0) where snapshotting caused images to load too many times. Fixes [#8679](https://togithub.com/cypress-io/cypress/issues/8679).
- Using [`cy.visit()`](https://on.cypress.io/visit) on sites with `content-type` of `text-html` followed by parameters (like `text/html;charset=utf-8`) will no longer throw an error about visiting a site with an invalid content-type. Fixes [#8506](https://togithub.com/cypress-io/cypress/issues/8506)
- The `Cannot access 'continueSent' before initialization` error will no longer throw when using [`cy.route2()`](https://on.cypress.io/route2). Fixes [#8926](https://togithub.com/cypress-io/cypress/issues/8926).
- Awaiting a request body when providing a static response stub in [`cy.route2()`](https://on.cypress.io/route2) should now work properly. Addressed in [#9059](https://togithub.com/cypress-io/cypress/issues/9059).
- The way that intercepted [`cy.route2()`](https://on.cypress.io/route2) requests are displayed in the Command Log has been improved, including showing the progress bar correctly. Addresses [#9053](https://togithub.com/cypress-io/cypress/issues/9053).
- The `Cannot read property 'replace' of undefined` error will no longer throw when attempting to generate the stack trace from an error thrown in the application. Fixes [#7915](https://togithub.com/cypress-io/cypress/issues/7915).
- Stack traces in the Command Log originating from application errors where the location is unavailable will no longer show as a clickable link to open in IDE. Fixes [#9106](https://togithub.com/cypress-io/cypress/issues/9106).
- When using the `fixture:` prefix as a stubbed response to [`cy.route()`](https://on.cypress.io/route), JSON fixtures containing only a number or boolean will no longer throw an error. Fixes [#4899](https://togithub.com/cypress-io/cypress/issues/4899).
- Fixed an issue causing failed subresource integrity checks for external scripts. Fixes [#8983](https://togithub.com/cypress-io/cypress/issues/8983), [#9049](https://togithub.com/cypress-io/cypress/issues/9049), and [#8992](https://togithub.com/cypress-io/cypress/issues/8992).
**Misc:**
- Typings for [`.invoke()`](https://on.cypress.io/invoke) and [`.its()`](https://on.cypress.io/its) now allow for a `timeout` option. Addresses [#9079](https://togithub.com/cypress-io/cypress/issues/9079).
- Typings for `cy.task()` now allow for parameterizing the task return type. Addresses [#7136](https://togithub.com/cypress-io/cypress/issues/7136).
- A clearer error is printed during `cypress cache list` when no cached versions are found. Addresses [#6303](https://togithub.com/cypress-io/cypress/issues/6303).
**Dependency Updates:**
- Upgraded `commander` from `^4.1.1` to `^5.1.0`. Addressed in [#8979](https://togithub.com/cypress-io/cypress/issues/8979).
- Upgraded `semver` from `6.3.0` to `7.3.2`. Addressed in [#9068](https://togithub.com/cypress-io/cypress/issues/9068).
- Upgraded `systeminformation` from `4.26.9` to `4.27.11`. Addressed in [#8979](https://togithub.com/cypress-io/cypress/issues/8979).
- Removed `node-webkit-updater`. This should remove some security warnings that were shown during install. Addresses [#8314](https://togithub.com/cypress-io/cypress/issues/8314).
### [`v5.5.0`](https://togithub.com/cypress-io/cypress/releases/v5.5.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.4.0...v5.5.0)
_Released 10/26/2020_
**Features:**
- [`cy.viewport()`](https://on.cypress.io/viewport) has a new `macbook-16` preset. Addresses [#8889](https://togithub.com/cypress-io/cypress/issues/8889).
- [`.type()`](https://on.cypress.io/type) now fires the `beforeInput` event during typing. _Note: Firefox does not support the `beforeinput` event_. Addresses [#7088](https://togithub.com/cypress-io/cypress/issues/7088).
**Bugfixes:**
- Updated the Cypress proxy layer to proxy HTTPS traffic from non-AUT origins. Addressed in [#8827](https://togithub.com/cypress-io/cypress/issues/8827).
- This fixed an issue with [`cy.route2`](https://on.cypress.io/route2) where HTTPS requests to a non-AUT origin would not be intercepted as expected.
- [`cy.route2()`](https://on.cypress.io/route2) now properly handles passing a method as its first argument. Fixes [#8729](https://togithub.com/cypress-io/cypress/issues/8729).
- Fixed an issue with [`cy.route2()`](https://on.cypress.io/route2) where a "Cannot set property response of undefined" error would occasionally occur. Fixes [#8858](https://togithub.com/cypress-io/cypress/issues/8858).
- Headers field names passed to [\`cy.route2()](https://on.cypress.io/route2) now case-insensitively match against the field names of incoming HTTP requests. Fixes [#8921](https://togithub.com/cypress-io/cypress/issues/8921).
- Routes that stub fixtures for binary resources (including images) made with [`cy.route2()`](https://on.cypress.io/route2) now serve the correct mime-type and content. Fixes [#8623](https://togithub.com/cypress-io/cypress/issues/8623).
- When [`experimentalNetworkStubbing`](https://on.cypress.io/experiments) is enabled, using [`cy.visit()`](https://on.cypress.io/visit) to URLs that redirect and set Transfer-Encoding: chunked will no longer fail in Cypress with a "Parse Error". Fixes [#8497](https://togithub.com/cypress-io/cypress/issues/8497).
- `cypress.run()` through the [Module API](https://on.cypress.io/module-api) now has a `status` property in the results matching the correct CLI types (`"failed"` or `"finished"`). Addresses [#8799](https://togithub.com/cypress-io/cypress/issues/8799).
- When a value containing an `e` character is passed to the `--ci-build-id` flag, Cypress now properly reads it as a string. Fixes [#8874](https://togithub.com/cypress-io/cypress/issues/8874).
**Misc:**
- Updated type definitions to allow for passed either `runMode` or `openMode` to `retries` alone. Addresses [#8869](https://togithub.com/cypress-io/cypress/issues/8869).
**Dependency Updates:**
- Upgraded `electron` from `10.1.3` to `10.1.5`. Addresses [#8927](https://togithub.com/cypress-io/cypress/issues/8927), [#8975](https://togithub.com/cypress-io/cypress/issues/8975).
- This addresses a Chrome security issue, CVE-2020-15999. Addresses [#8922](https://togithub.com/cypress-io/cypress/issues/8922).
- Upgraded `color-string` from `1.5.3` to `1.5.4`. Addresses [#8945](https://togithub.com/cypress-io/cypress/issues/8945).
- Upgraded `pretty-bytes` from `^5.3.0` to `^5.4.1`. Addresses [#8964](https://togithub.com/cypress-io/cypress/issues/8964).
### [`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/cy
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
->6.4.0
Release Notes
cypress-io/cypress
### [`v6.4.0`](https://togithub.com/cypress-io/cypress/releases/v6.4.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.3.0...v6.4.0) _Released 2/1/2021_ **Features:** - Added a command log entry for when a file is donwloaded. Addresses [#14749](https://togithub.com/cypress-io/cypress/issues/14749). - The `delayMs` option for `cy.intercept()` has been renamed to `delay`. `delayMs` will still work, but it is deprecated and will be removed in a future release. Addresses [#14822](https://togithub.com/cypress-io/cypress/issues/14822). **Bugfixes:** - Fixed an issue with handling spec paths containing special characters. Addresses [#14659](https://togithub.com/cypress-io/cypress/issues/14659). - Fixed an issue where Cypress Studio would not prompt to start adding commands after visiting an inputted url. Addresses [#14688](https://togithub.com/cypress-io/cypress/issues/14688). - Fixed an issue where Cypress Studio could generate empty `cy.type()` commands. Addresses [#14684](https://togithub.com/cypress-io/cypress/issues/14684). - Fixed an issue where Cypress Studio prompts user to enter a URL even if an error has already occured. Addresses [#14686](https://togithub.com/cypress-io/cypress/issues/14686). - Fixed an issue where Cypress Studio would not reload tests with `watchForFileChanges: false`. Addresses [#14744](https://togithub.com/cypress-io/cypress/issues/14744). - Fixed an issue where Cypress studio would add a `cy.click()` before `cy.type()`. Addresses [#14685](https://togithub.com/cypress-io/cypress/issues/14685). - Fixed an issue where Cypress Studio could use the wrong selector for a click event. Addresses [#14658](https://togithub.com/cypress-io/cypress/issues/14658). - Fixed multi-select support for Cypress Studio. Addresses [#14743](https://togithub.com/cypress-io/cypress/issues/14743). - Improved the UI for command failures within Cypress Studio. Addresses [#14691](https://togithub.com/cypress-io/cypress/issues/14691). - The Selector Playground is now closed automatically when Cypress Studio is opened. [#14689](https://togithub.com/cypress-io/cypress/issues/14689). - Fixed an issue with `cy.intercept` where aliases set via `req.alias` containing a period character would not work as expected. Addresses [#14444](https://togithub.com/cypress-io/cypress/issues/14444). - Fixed an issue where delays set using `cy.intercept` would not work as expected. Addresses [#14446](https://togithub.com/cypress-io/cypress/issues/14446). - Reverted a change to how the Chrome DevTools Protocol is established. Instead of using stdio and then falling back to TCP, Cypress now only uses TCP to try to connect to Chrome DevTools Protocol. Addresses [#14819](https://togithub.com/cypress-io/cypress/issues/14819). - Fixed an issue causing a webpack compilation error when a browserslist is present in project root. Addresses [#8864](https://togithub.com/cypress-io/cypress/issues/8864). **Misc:** - Added more details to the "no specs found" error. Addresses [#14532](https://togithub.com/cypress-io/cypress/issues/14532). - Added more resolved config property types. Addresses [#14392](https://togithub.com/cypress-io/cypress/issues/14392). - Added UTM parameters to external links. Addresses [#14741](https://togithub.com/cypress-io/cypress/issues/14741). **Dependency Updates:** - Upgraded `recast` to version `0.20.4`. Addresses [#14623](https://togithub.com/cypress-io/cypress/issues/14623). - Upgraded `registry-js` to version `1.13.0`. Addresses [#14668](https://togithub.com/cypress-io/cypress/issues/14668). - Upgraded `@cypress/get-windows-proxy` to version `1.6.2`. Addresses [#14711](https://togithub.com/cypress-io/cypress/issues/14711). - Upgraded `systeminformation` to version `4.31.1`. Addresses [#14715](https://togithub.com/cypress-io/cypress/issues/14715). - Upgraded `semantic-release` to version `17.2.3`. Addresses [#14713](https://togithub.com/cypress-io/cypress/issues/14713). - Upgraded `electron to version`11.2.1\`. Addresses [#14764](https://togithub.com/cypress-io/cypress/issues/14764). ### [`v6.3.0`](https://togithub.com/cypress-io/cypress/releases/v6.3.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.2.1...v6.3.0) _Released 1/19/2021_ **Features:** - **Cypress Studio** provides a visual way to generate tests within the Test Runner, by _recording interactions_ against the application under test. Cypress Studio is an experimental feature that can be enabled by adding the [`experimentalStudio`](https://on.cypress.io/experiments) attribute to your configuration, `cypress.json` by default. Address [#73](https://togithub.com/cypress-io/cypress/issues/73). - **You can now test file downloads in Cypress** without the download prompt displaying. Any files downloaded while testing file downloads will be stored in the [`downloadsFolder`](https://on.cypress.io/configuration#Downloads) which is set to `cypress/downloads` by default. The `downloadsFolder` will be deleted before each run unless [`trashAssetsBeforeRuns`](https://on.cypress.io/configuration#Downloads) is set to `false`. Addresses [#949](https://togithub.com/cypress-io/cypress/issues/949). **Bugfixes:** - When an uncaught exception is thrown outside a suite with an `.only`, the error will now correctly display in the Command Log. Fixes [#14455](https://togithub.com/cypress-io/cypress/issues/14455). - Cypress will no longer crash when no record key is provided to the `--key` flag when followed by other CLI flags. Fixed [#14593](https://togithub.com/cypress-io/cypress/issues/14593). - Extra screenshots will no longer be taken when tests are retried when there is a failure in an `afterEach` hook. Fixes [#9209](https://togithub.com/cypress-io/cypress/issues/9209). - Having `waitForAnimations` set to `false` no longer affects whether Cypress fires actions on inner elements. Fixes [#14370](https://togithub.com/cypress-io/cypress/issues/14370). - We fixed a regression in [5.0.0](https://on.cypress.io/changelog-5-0-0) that would cause string `CYPRESS_` prefixed env variables containing commas to be parsed as multiple values. Fixes [#8818](https://togithub.com/cypress-io/cypress/issues/8818). - We fixed a regression in [4.9.0](https://on.cypress.io/changelog-4-9-0) where asserting `have.value` on an undefined subject would throw an error. Fixes [#14359](https://togithub.com/cypress-io/cypress/issues/14359). - We updated the CDP connection to attempt to use the stdio transport first with Chrome 72 and above, before falling back to using TCP. This should remediate issues causing sporadic "Cypress failed to make a connection to the Chrome DevTools Protocol after retrying" errors. Fixes [#6540](https://togithub.com/cypress-io/cypress/issues/6540), [#7450](https://togithub.com/cypress-io/cypress/issues/7450), [#8674](https://togithub.com/cypress-io/cypress/issues/8674), and [#8986](https://togithub.com/cypress-io/cypress/issues/8986). **Misc:** - We removed several Chrome flags that are no longer supported. Addressed in [#14582](https://togithub.com/cypress-io/cypress/issues/14582). **Dependency Updates:** - Replaced deprecated `node-sass` with `sass`. Addressed in [#14415](https://togithub.com/cypress-io/cypress/pull/14415). - Upgraded `debug` from `4.1.1` to `4.3.1`. Addressed in [#14583](https://togithub.com/cypress-io/cypress/issues/14583). - Upgraded `electron` from `11.0.3` to `11.2.0`. Addressed in [#14567](https://togithub.com/cypress-io/cypress/issues/14567). - Upgraded `electron-builder` from `22.8.0` to `22.9.1`. Addressed in [#14493](https://togithub.com/cypress-io/cypress/issues/14493). - Upgraded `shell-env` from `3.0.0` to `3.0.1`. Addressed in [#14622](https://togithub.com/cypress-io/cypress/issues/14622). - Upgraded `uuid` from `8.2.0` to `8.3.2`. Addressed in [#14170](https://togithub.com/cypress-io/cypress/issues/14170). ### [`v6.2.1`](https://togithub.com/cypress-io/cypress/releases/v6.2.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.2.0...v6.2.1) _Released 1/4/2021_ **Bugfixes:** - Test retries, when retrying on several failed tests, will no longer cause hanging during `cypress run`. Fixes [#9040](https://togithub.com/cypress-io/cypress/issues/9040). - `multipart/form-data` is no longer wrongly encoded when using [`cy.intercept()`](https://on.cypress.io/intercept). This should prevent `Unexpected end of multipart data` errors on the back end service where the request was pointing to. Fixes [#9359](https://togithub.com/cypress-io/cypress/issues/9359). - [`cy.contains()`](https://on.cypress.io/contains) no longer throws an error when a single quote is used inside its argument when RegExp. Fixes [#8626](https://togithub.com/cypress-io/cypress/issues/8626). - Passing `capture: 'runner'` to a [`cy.screenshot()`](https://on.cypress.io/screenshot) command inside [`.within()`](https://on.cypress.io/within) now screenshots the entire Test Runner as expected. Fixes [#14253](https://togithub.com/cypress-io/cypress/issues/14253). - [`Cypress.dom.isJquery()`](https://on.cypress.io/dom#Is-jQuery) now always returns a boolean instead of `undefined` sometimes. Fixes [#14278](https://togithub.com/cypress-io/cypress/issues/14278). - `calledOnceWith` and `calledOnceWithExactly` sinon matchers no longer throw an error when used within Cypress. Fixes [#9644](https://togithub.com/cypress-io/cypress/issues/9644). - We now pass `--disable-backgrounding-occluded-windows` as a default flag to Chrome to prevent backgrounding rendering when the Cypress window is occluded. Fixes [#9604](https://togithub.com/cypress-io/cypress/issues/9604). **Misc:** - After login, if a name is undefined on your profile, the Test Runner will show the profile's email and link to instructions to update the name. Addresses [#14288](https://togithub.com/cypress-io/cypress/issues/14288). **Dependency Updates:** - Upgraded `devtools-protocol` from `0.0.734984` to `0.0.839267`. Addressed in [#14353](https://togithub.com/cypress-io/cypress/issues/14353). - Upgraded `electron` from `11.0.3` to `11.1.1`. Addressed in [#14352](https://togithub.com/cypress-io/cypress/issues/14352). ### [`v6.2.0`](https://togithub.com/cypress-io/cypress/releases/v6.2.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.1.0...v6.2.0) _Released 12/21/2020_ **Features:** - You can now listen to `before:run` and `after:run` events in the plugins file. See the [`before:run`](https://on.cypress.io/before-run-api) and [`after:run`](https://on.cypress.io/after-run-api) docs for more information. Addressed in [#14238](https://togithub.com/cypress-io/cypress/issues/14238) and [#14263](https://togithub.com/cypress-io/cypress/issues/14263). - You can now listen to `before:spec` and `after:spec` events in the plugins file. See the [`before:spec`](https://on.cypress.io/before-spec-api) and [`after:spec`](https://on.cypress.io/after-spec-api) docs for more information. Addressed in [#9646](https://togithub.com/cypress-io/cypress/issues/9646) and [#14178](https://togithub.com/cypress-io/cypress/issues/14178). - The `Timed out retrying` error message now displays the amount of time Cypress retried. Addresses [#5781](https://togithub.com/cypress-io/cypress/issues/5781). **Bugfixes:** - Getting an alias of [`cy.intercept()`](https://on.cypress.io/intercept) using [`cy.get()`](https://on.cypress.io/get) will no longer always yield `null`. Fixes [#9306](https://togithub.com/cypress-io/cypress/issues/9306). - [`cy.intercept()`](https://on.cypress.io/intercept) will now automatically responds to CORS preflight requests (HTTP `OPTIONS` requests) that match defined routes. Fixes [#9599](https://togithub.com/cypress-io/cypress/issues/9599). - Response errors from `forceNetworkError` can now be awaited using [`cy.intercept()`](https://on.cypress.io/intercept) and [`cy.wait()`](https://on.cypress.io/wait). Fixes [#9062](https://togithub.com/cypress-io/cypress/issues/9062). - Using [`cy.log()`](https://on.cypress.io/log) inside [`.then()`](https://on.cypress.io/then) no longer breaks the subject value in the command chain. Fixes [#8084](https://togithub.com/cypress-io/cypress/issues/8084). - Using [`Cypress.Commands.overwrite`](https://on.cypress.io/custom-commands#Overwrite-Existing-Commands) to overwrite [`.then()`](https://on.cypress.io/then) now preserves the proper `this` context and sets aliases correctly. Fixes [#5101](https://togithub.com/cypress-io/cypress/issues/5101). - Using [`Cypress.Commands.overwrite`](https://on.cypress.io/custom-commands#Overwrite-Existing-Commands) to overwrite [`cy.route()`](https://on.cypress.io/route) or [`cy.intercept()`](https://on.cypress.io/intercept) and wait on its alias now properly works. Fixes [#3890](https://togithub.com/cypress-io/cypress/issues/3890) and [#9580](https://togithub.com/cypress-io/cypress/issues/9580). - Cypress no longer fails to find specs if you set the fixtures folder to be the same as the integration folder. Fixes [#14226](https://togithub.com/cypress-io/cypress/issues/14226). **Misc:** - `scrollBehavior` is now an allowed type when passed as test configuration. Addresses [#9643](https://togithub.com/cypress-io/cypress/issues/9643). - The `FileObject` type for the file argument of the `file:preprocessor` event now includes the `EventEmitter` type. Addresses [#9276](https://togithub.com/cypress-io/cypress/issues/9276). **Dependency Updates:** - Upgraded `electron` from `11.0.2` to `11.0.3`. Addressed in [#9409](https://togithub.com/cypress-io/cypress/issues/9409). ### [`v6.1.0`](https://togithub.com/cypress-io/cypress/releases/v6.1.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.0.1...v6.1.0) _Released 12/07/2020_ **Features:** - There's a new `scrollBehavior` configuration option that controls the viewport position when an element is scrolled prior to action commands. Possible values are `'top'`, `'bottom'`, `'center'`, `'nearest'`, and `false`, with `'top'` being the default. `scrollBehavior: false` disables scrolling altogether. `scrollBehavior` can be specified in [global configuration](https://on.cypress.io/configuration#Actionability), [test configuration](https://on.cypress.io/writing-and-organizing-tests#Test-Configuration) or individual [action commands](https://on.cypress.io/interacting-with-elements) via `options`. Addresses [#871](https://togithub.com/cypress-io/cypress/issues/871) and [#4356](https://togithub.com/cypress-io/cypress/issues/4356). - The **Tests** tab in the Test Runner now orders folders before files. This matches the ordering of most IDEs' file explorers. Addresses [#7334](https://togithub.com/cypress-io/cypress/issues/7334). **Bugfixes:** - Responses stubbed from [`cy.intercept()`](https://on.cypress.io/intercept) will now automatically set `Access-Control-Allow-Origin` and `Access-Control-Allow-Credentials` to permissive values unless explicitly overridden. Fixes [#9264](https://togithub.com/cypress-io/cypress/issues/9264). - The `Cannot read property "fireChangeEvent" of undefined` error will no longer throw during a race condition when using [`cy.intercept()`](https://on.cypress.io/intercept). [#9170](https://togithub.com/cypress-io/cypress/issues/9170) - HTTP responses that cannot have a body (like HTTP 304 and HTTP 204) can now be awaited using [`cy.intercept()`](https://on.cypress.io/intercept). Fixes [#8934](https://togithub.com/cypress-io/cypress/issues/8934) and [#8999](https://togithub.com/cypress-io/cypress/issues/8999). - We fixed an issue where HTTP redirects could not be awaited using [`cy.intercept()`](https://on.cypress.io/intercept) unless dynamically intercepted. Addressed in [#9097](https://togithub.com/cypress-io/cypress/issues/9097). - Tests will no longer hang in certain situations when there's an error in a `before()` hook. Fixes [#9162](https://togithub.com/cypress-io/cypress/issues/9162). - We no longer strip `/` from URLs when they are explicitly passed with query paramaters. Fixes [#9360](https://togithub.com/cypress-io/cypress/issues/9360). **Deprecations:** Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations. - [`Cypress.moment`](https://on.cypress.io/moment) has been deprecated and will be replaced in a future release. Consider migrating to a different datetime formatter. Addresses [#8714](https://togithub.com/cypress-io/cypress/issues/8714). **Misc:** - We collect more environment variables from Bitbucket to better detect reruns. Addresses [#9309](https://togithub.com/cypress-io/cypress/issues/9309). - `waitForAnimations` and `animationDistanceThreshold` types are now included for all actionable commands. Addresses [#8854](https://togithub.com/cypress-io/cypress/issues/8854). **Dependency Updates:** - Upgraded `mocha-junit-reporter` from `1.23.1` to `2.0.0`. Addressed in [#9528](https://togithub.com/cypress-io/cypress/issues/9528). ### [`v6.0.1`](https://togithub.com/cypress-io/cypress/releases/v6.0.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v6.0.0...v6.0.1) _Released 11/30/2020_ **Bugfixes:** - Chromium based browsers on version 87 will no longer show recorded videos as frozen or blank. Fixes [#9265](https://togithub.com/cypress-io/cypress/issues/9265). - We fixed a regression introduced in [5.0.0](https://on.cypress.io/changelog#5-0-0) that would cause an `Option 'sourceMap' cannot be specified with option 'inlineSourceMap'` error to throw when setting `sourceMap` in your tsconfig. Fixes [#8477](https://togithub.com/cypress-io/cypress/issues/8477). - [`cy.screenshot()`](https://on.cypress.io/screenshot) no longer throws an `"offset" is out of range` error when Cypress attempts to crop the image. Fixes [#2034](https://togithub.com/cypress-io/cypress/issues/2034). - [`cy.screenshot()`](https://on.cypress.io/screenshot) types won't mistakenly display the command as deprecated. Fixes [#9303](https://togithub.com/cypress-io/cypress/issues/9303). - Lower-cased HTTP methods can now be used with [`cy.intercept()`](https://on.cypress.io/intercept). Fixes [#9313](https://togithub.com/cypress-io/cypress/issues/9313). ### [`v6.0.0`](https://togithub.com/cypress-io/cypress/releases/v6.0.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.6.0...v6.0.0) _Released 11/23/2020_ **Summary:** Cypress now offers full network stubbing support with the introduction of the [`cy.intercept()`](https://on.cypress.io/intercept) command (previously `cy.route2()`). With [`cy.intercept()`](https://on.cypress.io/intercept) your tests can intercept, modify and wait on any type of HTTP request originating from your app. **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 6.0.** - Cypress now always throws an error when asserting on an element that doesn't exist in the DOM (unless you're asserting that the element should `not.exist`). Assertions such as `not.visible`, `not.contains`, `not.have.class`, etc will now fail when used on non-existent DOM elements. Addresses [#205](https://togithub.com/cypress-io/cypress/issues/205). - DOM elements where the CSS style (or ancestors) are `opacity: 0` are no longer considered visible. However these are still considered [actionable](https://on.cypress.io/interacting-with-elements) and "any action commands" interacting-with-elements#Actionability used to interact with the element will perform the action. This matches browser's implementation on how they regard elements with `opacity: 0`. Addresses [#4474](https://togithub.com/cypress-io/cypress/issues/4474). - The type yielded by [`cy.wait(alias)`](https://on.cypress.io/wait) has changed in order to support use of [`cy.intercept()`](https://on.cypress.io/intercept). Addressed in [#9266](https://togithub.com/cypress-io/cypress/issues/9266). - The `experimentalNetworkStubbing` option has been removed and made the default behavior. You can safely removed this configuration option. Addressed in [#9185](https://togithub.com/cypress-io/cypress/issues/9185). - When using [`.type()`](https://on.cypress.io/type) and [`.click()`](https://on.cypress.io/click) on elements inside a `contenteditable` element, the events are now properly triggered on the inside elements. This may cause unintended consequences if you were relying on the previous behavior. Addressed in [#9066](https://togithub.com/cypress-io/cypress/issues/9066). - We removed several deprecation errors around APIs that were removed in versions of Cypress prior to 4.0.0. This will not cause any changes for anyone upgrading from a 4.0+ version of Cypress. For a full list of all APIs affected see [#8946](https://togithub.com/cypress-io/cypress/issues/8946). - We updated our HTTP status codes and reason phrases to match Node.js `http.STATUS_CODES`. If you have code that relies on a reason phrase, then this could affect you. Addressed in [#8969](https://togithub.com/cypress-io/cypress/issues/8969). - JSON request and response bodies captured by [`cy.intercept()`](https://on.cypress.io/intercept) are now automatically parsed, removing the need to manually do `JSON.parse`. Addressed in [#9280](https://togithub.com/cypress-io/cypress/issues/9280). **Deprecations:** Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations. - `cy.server()` and `cy.route()` have been deprecated. In a future release, support for `cy.server()` and `cy.route()` will be moved to a plugin. We encourage you to use [`cy.intercept()`](https://on.cypress.io/intercept) instead. Addressed in [#9185](https://togithub.com/cypress-io/cypress/issues/9185). - `experimentalFetchPolyfill` has been deprecated. We encourage you to use [`cy.intercept()`](https://on.cypress.io/intercept) to intercept requests using the Fetch API instead. - `cy.route2()` was renamed to [`cy.intercept()`](https://on.cypress.io/intercept). We encourage you to update usages of `cy.route2()` to use [`cy.intercept()`](https://on.cypress.io/intercept). Addressed in [#9182](https://togithub.com/cypress-io/cypress/issues/9182). **Features:** - The new [`cy.intercept()`](https://on.cypress.io/intercept) command can be used to manage the behavior of HTTP requests at the network layer. Addressed in [#9182](https://togithub.com/cypress-io/cypress/issues/9182). - We now pass `—disable-dev-shm-usage` to the Chrome browser flags by default. This will write shared memory files into `/tmp` instead of `/dev/shm`. If you're passing this flag in your `plugins` file, you can now remove this code. Addresses [#5336](https://togithub.com/cypress-io/cypress/issues/5336). - A warning is now displayed when passing invalid configuration keys through the CLI. Addresses [#428](https://togithub.com/cypress-io/cypress/issues/428). - The `cypress version` command now also displays the current Electron and bundled Node versions. Addresses [#9180](https://togithub.com/cypress-io/cypress/issues/9180). - The `cypress version` command now accepts a `--component` flag that allows you to print the version of specific components of Cypress. ie Electron, Node, etc. Addresses [#9214](https://togithub.com/cypress-io/cypress/issues/9214). **Bugfixes:** - We fixed a regression introduced in [3.5.0](https://on.cypress.io/changelog#3-5-0) that would cause [`.type()`](https://on.cypress.io/type) to not type the entire string when focus was called away from the target element. Fixes [#9254](https://togithub.com/cypress-io/cypress/issues/9254). - [`.type()`](https://on.cypress.io/type) and [`.click()`](https://on.cypress.io/click) now properly work on elements inside a `contenteditable` element. Fixes [#2717](https://togithub.com/cypress-io/cypress/issues/2717) and [#7721](https://togithub.com/cypress-io/cypress/issues/7721). - We fixed a regression introduced in [5.6.0](https://on.cypress.io/changelog#5-6-0) that would cause the Test Runner to crashes and display a white page when switching tabs while tests are running. Fixes [#9151](https://togithub.com/cypress-io/cypress/issues/9151). - Fixed an issue where `Content-Length` for `cy.route2` request bodies could be incorrectly recalculated. Fixes [#9166](https://togithub.com/cypress-io/cypress/issues/9166). **Documentation Changes:** - Our [Migration Guide](https://on.cypress.io/migration-guide) has a new section for 6.0 migration. - Many of our docs examples have been updated to use [`cy.intercept()`](https://on.cypress.io/intercept) in place of `cy.route()` including our [Network Requests](https://on.cypress.io/network-requests) doc. **Misc:** - Added the type of `redirects` and changed `redirectedToUrl` optional for Response types. Addresses [#9275](https://togithub.com/cypress-io/cypress/issues/9275). **Dependency Updates** - Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `85` to `87`. Addressed in [#9222](https://togithub.com/cypress-io/cypress/pull/9222). - Upgraded bundled Node.js version from `12.16.3` to `12.18.3`. Addressed in [#9222](https://togithub.com/cypress-io/cypress/pull/9222). - Upgraded `electron` from `10.1.5` to `11.0.2`. Addressed in [#9222](https://togithub.com/cypress-io/cypress/pull/9222). ### [`v5.6.0`](https://togithub.com/cypress-io/cypress/releases/v5.6.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.5.0...v5.6.0) _Released 11/09/2020_ **Features:** - You can now dynamically add aliases for requests intercepted via [`cy.route2()`](https://on.cypress.io/route2). [See an example](https://on.cypress.io/route2#Aliasing-individual-requests). Addresses [#387](https://togithub.com/cypress-io/cypress/issues/387). - You can now run all integration specs or all component specs separately (or a filtered list of specs) by clicking the appropriate button in the Test Runner in the _Tests_ tab. Addresses [#8203](https://togithub.com/cypress-io/cypress/issues/8203). - Added a new modifier syntax to [`cy.type()`](https://on.cypress.io/type). You can now type shortcuts like `{ctrl+z}`. Addressed in [#5694](https://togithub.com/cypress-io/cypress/issues/5694). - We now show a modal with release notes when available when there is a new version of Cypress. Addressed in [#9006](https://togithub.com/cypress-io/cypress/issues/9006). - In the Test Runner's _Settings_ and _Runs_ tab you can now quickly copy the project id configuration and record key using a copy to clipboard icon. Addresses [#9002](https://togithub.com/cypress-io/cypress/issues/9002). **Bugfixes:** - Fixed a regression introduced in [4.12.0](https://on.cypress.io/changelog#4-12-0) where snapshotting caused images to load too many times. Fixes [#8679](https://togithub.com/cypress-io/cypress/issues/8679). - Using [`cy.visit()`](https://on.cypress.io/visit) on sites with `content-type` of `text-html` followed by parameters (like `text/html;charset=utf-8`) will no longer throw an error about visiting a site with an invalid content-type. Fixes [#8506](https://togithub.com/cypress-io/cypress/issues/8506) - The `Cannot access 'continueSent' before initialization` error will no longer throw when using [`cy.route2()`](https://on.cypress.io/route2). Fixes [#8926](https://togithub.com/cypress-io/cypress/issues/8926). - Awaiting a request body when providing a static response stub in [`cy.route2()`](https://on.cypress.io/route2) should now work properly. Addressed in [#9059](https://togithub.com/cypress-io/cypress/issues/9059). - The way that intercepted [`cy.route2()`](https://on.cypress.io/route2) requests are displayed in the Command Log has been improved, including showing the progress bar correctly. Addresses [#9053](https://togithub.com/cypress-io/cypress/issues/9053). - The `Cannot read property 'replace' of undefined` error will no longer throw when attempting to generate the stack trace from an error thrown in the application. Fixes [#7915](https://togithub.com/cypress-io/cypress/issues/7915). - Stack traces in the Command Log originating from application errors where the location is unavailable will no longer show as a clickable link to open in IDE. Fixes [#9106](https://togithub.com/cypress-io/cypress/issues/9106). - When using the `fixture:` prefix as a stubbed response to [`cy.route()`](https://on.cypress.io/route), JSON fixtures containing only a number or boolean will no longer throw an error. Fixes [#4899](https://togithub.com/cypress-io/cypress/issues/4899). - Fixed an issue causing failed subresource integrity checks for external scripts. Fixes [#8983](https://togithub.com/cypress-io/cypress/issues/8983), [#9049](https://togithub.com/cypress-io/cypress/issues/9049), and [#8992](https://togithub.com/cypress-io/cypress/issues/8992). **Misc:** - Typings for [`.invoke()`](https://on.cypress.io/invoke) and [`.its()`](https://on.cypress.io/its) now allow for a `timeout` option. Addresses [#9079](https://togithub.com/cypress-io/cypress/issues/9079). - Typings for `cy.task()` now allow for parameterizing the task return type. Addresses [#7136](https://togithub.com/cypress-io/cypress/issues/7136). - A clearer error is printed during `cypress cache list` when no cached versions are found. Addresses [#6303](https://togithub.com/cypress-io/cypress/issues/6303). **Dependency Updates:** - Upgraded `commander` from `^4.1.1` to `^5.1.0`. Addressed in [#8979](https://togithub.com/cypress-io/cypress/issues/8979). - Upgraded `semver` from `6.3.0` to `7.3.2`. Addressed in [#9068](https://togithub.com/cypress-io/cypress/issues/9068). - Upgraded `systeminformation` from `4.26.9` to `4.27.11`. Addressed in [#8979](https://togithub.com/cypress-io/cypress/issues/8979). - Removed `node-webkit-updater`. This should remove some security warnings that were shown during install. Addresses [#8314](https://togithub.com/cypress-io/cypress/issues/8314). ### [`v5.5.0`](https://togithub.com/cypress-io/cypress/releases/v5.5.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v5.4.0...v5.5.0) _Released 10/26/2020_ **Features:** - [`cy.viewport()`](https://on.cypress.io/viewport) has a new `macbook-16` preset. Addresses [#8889](https://togithub.com/cypress-io/cypress/issues/8889). - [`.type()`](https://on.cypress.io/type) now fires the `beforeInput` event during typing. _Note: Firefox does not support the `beforeinput` event_. Addresses [#7088](https://togithub.com/cypress-io/cypress/issues/7088). **Bugfixes:** - Updated the Cypress proxy layer to proxy HTTPS traffic from non-AUT origins. Addressed in [#8827](https://togithub.com/cypress-io/cypress/issues/8827). - This fixed an issue with [`cy.route2`](https://on.cypress.io/route2) where HTTPS requests to a non-AUT origin would not be intercepted as expected. - [`cy.route2()`](https://on.cypress.io/route2) now properly handles passing a method as its first argument. Fixes [#8729](https://togithub.com/cypress-io/cypress/issues/8729). - Fixed an issue with [`cy.route2()`](https://on.cypress.io/route2) where a "Cannot set property response of undefined" error would occasionally occur. Fixes [#8858](https://togithub.com/cypress-io/cypress/issues/8858). - Headers field names passed to [\`cy.route2()](https://on.cypress.io/route2) now case-insensitively match against the field names of incoming HTTP requests. Fixes [#8921](https://togithub.com/cypress-io/cypress/issues/8921). - Routes that stub fixtures for binary resources (including images) made with [`cy.route2()`](https://on.cypress.io/route2) now serve the correct mime-type and content. Fixes [#8623](https://togithub.com/cypress-io/cypress/issues/8623). - When [`experimentalNetworkStubbing`](https://on.cypress.io/experiments) is enabled, using [`cy.visit()`](https://on.cypress.io/visit) to URLs that redirect and set Transfer-Encoding: chunked will no longer fail in Cypress with a "Parse Error". Fixes [#8497](https://togithub.com/cypress-io/cypress/issues/8497). - `cypress.run()` through the [Module API](https://on.cypress.io/module-api) now has a `status` property in the results matching the correct CLI types (`"failed"` or `"finished"`). Addresses [#8799](https://togithub.com/cypress-io/cypress/issues/8799). - When a value containing an `e` character is passed to the `--ci-build-id` flag, Cypress now properly reads it as a string. Fixes [#8874](https://togithub.com/cypress-io/cypress/issues/8874). **Misc:** - Updated type definitions to allow for passed either `runMode` or `openMode` to `retries` alone. Addresses [#8869](https://togithub.com/cypress-io/cypress/issues/8869). **Dependency Updates:** - Upgraded `electron` from `10.1.3` to `10.1.5`. Addresses [#8927](https://togithub.com/cypress-io/cypress/issues/8927), [#8975](https://togithub.com/cypress-io/cypress/issues/8975). - This addresses a Chrome security issue, CVE-2020-15999. Addresses [#8922](https://togithub.com/cypress-io/cypress/issues/8922). - Upgraded `color-string` from `1.5.3` to `1.5.4`. Addresses [#8945](https://togithub.com/cypress-io/cypress/issues/8945). - Upgraded `pretty-bytes` from `^5.3.0` to `^5.4.1`. Addresses [#8964](https://togithub.com/cypress-io/cypress/issues/8964). ### [`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.