cypress-io/cypress
### [`v5.0.0`](https://togithub.com/cypress-io/cypress/releases/v5.0.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v4.12.1...v5.0.0)
_Released 8/19/2020_
**Summary:**
Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details.
**Breaking Changes:**
**Please read our [Migration Guide](https://on.cypress.io/migration-guide) which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.**
- The [`cypress-plugin-retries`](https://togithub.com/Bkucera/cypress-plugin-retries) plugin has been deprecated in favor of test retries built into Cypress. Addresses [#1313](https://togithub.com/cypress-io/cypress/issues/1313).
- The [`Cypress.Cookies.defaults()`](https://on.cypress.io/cookies) `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in [#7782](https://togithub.com/cypress-io/cypress/issues/7782).
- The `blacklistHosts` configuration has been renamed to [`blockHosts`](https://on.cypress.io/configuration#Notes) to more closely reflect its behavior. Addressed in [#7622](https://togithub.com/cypress-io/cypress/issues/7622).
- The [`cy.server()`](https://on.cypress.io/server) `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses [#6642](https://togithub.com/cypress-io/cypress/issues/6642).
- `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791).
- Values yielded by [`cy.setCookie()`](https://on.cypress.io/setcookie), [`cy.getCookie()`](https://on.cypress.io/getcookie), and [`cy.getCookies()`](https://on.cypress.io/getcookies) will now contain the `sameSite` property if specified. Addresses [#6892](https://togithub.com/cypress-io/cypress/issues/6892).
- The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses [#6892](https://togithub.com/cypress-io/cypress/issues/6892).
- The return type of the [`Cypress.Blob`](https://on.cypress.io/blob) methods `arrayBufferToBlob`, `base64StringToBlob`, `binaryStringToBlob`, and `dataURLToBlob` have changed from `Promise` to `Blob`. Addresses [#6001](https://togithub.com/cypress-io/cypress/issues/6001).
- Cypress no longer supports file paths with a question mark `?` in them. We now use the [webpack preprocessor](https://togithub.com/cypress-io/cypress-webpack-preprocessor) by default and it does not support files with question marks. Addressed in [#7982](https://togithub.com/cypress-io/cypress/pull/7982).
- For TypeScript compilation of spec, support, and plugins files, the `esModuleInterop` option is no longer coerced to `true`. If you need to utilize `esModuleInterop`, set it in your `tsconfig.json`. Addresses [#7575](https://togithub.com/cypress-io/cypress/issues/7575).
- Cypress now requires TypeScript 3.4+. Addressed in [#7856](https://togithub.com/cypress-io/cypress/issues/7856).
- Installing Cypress on your system now requires Node.js 10+. Addresses [#6574](https://togithub.com/cypress-io/cypress/issues/6574).
- In spec files, the values for the globals `__dirname` and `__filename` no longer include leading slashes. Addressed in [#7982](https://togithub.com/cypress-io/cypress/pull/7982).
**Features:**
- There's a new `retries` configuration option to configure the number of times to retry a failing test. Addresses [#1313](https://togithub.com/cypress-io/cypress/issues/1313).
- [`.click()`](https://on.cypress.io/click), [`.dblclick()`](https://on.cypress.io/dblclick), and [`.rightclick()`](https://on.cypress.io/rightclick) now accept options `altKey`, `ctrlKey`, `metaKey`, and `shiftKey` to hold down key combinations while clicking. Addresses [#486](https://togithub.com/cypress-io/cypress/issues/486).
- You can now chain `.snapshot()` off of `cy.stub()` and `cy.spy()` to disabled snapshots during those commands. For example: `cy.stub().snapshot(false)`. Addresses [#3849](https://togithub.com/cypress-io/cypress/issues/3849).
**Bugfixes:**
- The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes [#7874](https://togithub.com/cypress-io/cypress/issues/7874) and [#8193](https://togithub.com/cypress-io/cypress/issues/8193).
- Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes [#6813](https://togithub.com/cypress-io/cypress/pull/6813).
- The error `Maximum call stack size exceeded` will no longer throw when calling `scrollIntoView` on an element in the shadow dom. Fixes [#7986](https://togithub.com/cypress-io/cypress/issues/7986).
- Cypress [environment variables](https://on.cypress.io/environment-variables) that accept arrays as their value will now properly evaluate as arrays. Fixes [#6810](https://togithub.com/cypress-io/cypress/issues/6810).
- Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes [#6183](https://togithub.com/cypress-io/cypress/issues/6183).
- When [`experimentalShadowDomSupport`](https://on.cypress.io/experiments) is enabled, [`.parent()`](https://on.cypress.io/parent) and [`.parentsUntil()`](https://on.cypress.io/parentsuntil) commands now work correctly in shadow dom as well as passing a selector to [`.parents()`](https://on.cypress.io/parents) when the subject is in the shadow dom. Fixed in [#8202](https://togithub.com/cypress-io/cypress/pull/8202).
- Screenshots will now be correctly taken when a test fails in an `afterEach` or `beforeEach` hook after the hook has already passed. Fixes [#3744](https://togithub.com/cypress-io/cypress/issues/3744).
- Cypress will no longer report screenshots overwritten in a `cy.screenshot()` [`onAfterScreenshot`](https://on.cypress.io/screenshot#Get-screenshot-info-from-the-onAfterScreenshot-callback) option as a unique screenshot. Fixes [#8079](https://togithub.com/cypress-io/cypress/issues/8079).
- Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes [#2403](https://togithub.com/cypress-io/cypress/issues/2403).
- The "last used browser" will now be correctly remembered during `cypress open` if a non-default-channel browser was selected. Fixes [#8281](https://togithub.com/cypress-io/cypress/issues/8281).
- For TypeScript projects, `tsconfig.json` will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes [#7006](https://togithub.com/cypress-io/cypress/issues/7006) and [#7503](https://togithub.com/cypress-io/cypress/issues/7503).
- `reporterStats` now correctly show the number of passed and failed tests when a test passes but the `afterEach` fails. Fixes [#7730](https://togithub.com/cypress-io/cypress/issues/7730).
- The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes [#3559](https://togithub.com/cypress-io/cypress/pull/3559).
**Documentation Changes:**
- We have a new guide on Test Retries.
- Our [Migration Guide](https://on.cypress.io/migration-guide) has a new section for 5.0 migration.
**Misc:**
- Cypress now uses the [webpack preprocessor](https://togithub.com/cypress-io/cypress-webpack-preprocessor) by default to preprocess spec files.
- The **Runs** tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in [#8141](https://togithub.com/cypress-io/cypress/pull/8141).
- The type for the `Window` object returned from [`cy.window()`](https://on.cypress.io/window) is now correct. Addresses [#7856](https://togithub.com/cypress-io/cypress/issues/7856).
- The type definition for Cypress's `ApplicationWindow` can now be extended. Addresses [#7856](https://togithub.com/cypress-io/cypress/issues/7856).
- The type definition for `reporterOptions` has been added. Addresses [#7877](https://togithub.com/cypress-io/cypress/issues/7877).
**Dependency Updates**
- Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from `80` to `83`. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791).
- Upgraded bundled Node.js version from `12.8.1` to `12.14.1`. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791).
- Upgraded `chalk` from `2.4.2` to `4.1.0`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `cli-table3` from `0.5.1` to `0.6.0`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `electron` from `8.3.1` to `9.2.0`. Addressed in [#7791](https://togithub.com/cypress-io/cypress/pull/7791) and [#8235](https://togithub.com/cypress-io/cypress/pull/8235).
- Upgraded `execa` from `1.0.0` to `4.0.2`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `express` from `4.16.4` to `4.17.1`. Addressed in [#8179](https://togithub.com/cypress-io/cypress/pull/8179).
- Upgraded `fs-extra` from `8.1.0` to `9.0.1`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `log-symbols` from `3.0.0` to `4.0.0`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
- Upgraded `tmp` from `0.1.0` to `0.2.1`. Addressed in [#7650](https://togithub.com/cypress-io/cypress/pull/7650).
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is behind base branch, 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:
4.12.1
->5.0.0
Release Notes
cypress-io/cypress
### [`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: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is behind base branch, 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.