cypress-io/cypress
### [`v4.0.0`](https://togithub.com/cypress-io/cypress/releases/v4.0.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.8.3...v4.0.0)
_Released 2/6/2020_
**Summary:**
Cypress 4.0.0 includes support for [Mozilla Firefox](https://www.mozilla.org/firefox/) browsers (beta support) and [Microsoft Edge](https://www.microsoft.com/edge) (Chromium based) browsers which is a big step forward for [Cross Browser Testing](https://on.cypress.io/cross-browser-testing) in Cypress. We've also updated many of the [underlying tools](https://on.cypress.io/bundled-tools) behind Cypress that bring new powerful features.
**Breaking Changes:**
**:warning: 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 4.0.**
- Mocha, Chai, and Sinon.JS has been upgraded which includes a number of breaking changes and new features. Addresses [#2528](https://togithub.com/cypress-io/cypress/issues/2528), [#2529](https://togithub.com/cypress-io/cypress/issues/2529), [#2866](https://togithub.com/cypress-io/cypress/issues/2866).
- During `before:browser:launch`, we no longer yield the second argument as an array of browser arguments and instead yield an `options` object with an `args` property in order to support more advanced browser launch options. Addresses [#6306](https://togithub.com/cypress-io/cypress/issues/6306).
- We updated the [Cypress browser objects](https://on.cypress.io/browser-launch-api) of all Chromium-based browsers, including Electron, to have `chromium` set as their `family` field. Addresses [#6243](https://togithub.com/cypress-io/cypress/issues/6243).
- The [`--browser` flag](https://on.cypress.io/command-line#cypress-run-browser-lt-browser-name-or-path-gt) no longer accepts `canary` as its sole argument to run Chrome Canary. You now have to specify `chrome:canary` to use the Chrome Canary browser. Addresses [#6243](https://togithub.com/cypress-io/cypress/issues/6243).
- [`cy.writeFile()`](https://on.cypress.io/writefile) now yields `null` instead of the contents written to the file in order to more align with the behavior of `fs`. Addresses [#2466](https://togithub.com/cypress-io/cypress/issues/2466).
- Installing Cypress on your system now requires Node.js 8+. Addresses [#5632](https://togithub.com/cypress-io/cypress/issues/5632).
- Cypress no longer support CJSX. Addresses [#3469](https://togithub.com/cypress-io/cypress/issues/3469).
**Features:**
- [Mozilla Firefox](https://www.mozilla.org/firefox/) browsers now have beta support. Addresses [#1096](https://togithub.com/cypress-io/cypress/issues/1096).
- [Microsoft Edge](https://www.microsoft.com/edge) (Chromium based) browsers are now supported. Addresses [#5433](https://togithub.com/cypress-io/cypress/issues/5433).
- There is a new [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) utility function. Addresses [#2023](https://togithub.com/cypress-io/cypress/issues/2023).
- We updated the [`Cypress.browser`](https://on.cypress.io/browser) object with a new `channel` property which contains the release channel of the detected browser. Addresses [#6243](https://togithub.com/cypress-io/cypress/issues/6243).
- Appending `.only` to multiple tests or suites will now run all tests with the `.only` property. Addresses [#2828](https://togithub.com/cypress-io/cypress/issues/2828).
- The [`isFinite` assertion](https://on.cypress.io/assertions) is now supported. Addresses [#5669](https://togithub.com/cypress-io/cypress/issues/5669).
- The `empty` assertion is now supported when used against Map objects. Addresses [#6072](https://togithub.com/cypress-io/cypress/issues/6072).
- The `nested` assertion chainer property is now supported. Addresses [#3080](https://togithub.com/cypress-io/cypress/issues/3080) and [#5004](https://togithub.com/cypress-io/cypress/issues/5004).
**Bugfixes:**
- A test or suite appended with an `.only` when multiple tests or suites contained the same title now run correctly. Fixes [#5345](https://togithub.com/cypress-io/cypress/issues/5345).
- The [`.its()`](https://on.cypress.io/its) command now properly supports 0 as a value for indexes or object keys. Fixes [#6216](https://togithub.com/cypress-io/cypress/issues/6216).
**Documentation Changes:**
- Added [Cross Browser Testing Guide](https://on.cypress.io/cross-browser-testing) with helpful CI strategies to consider when running tests across multiple browsers.
- Added [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) doc.
**Misc:**
- We now pass through errors caused when attempting to read arguments passed through [`config`](https://on.cypress.io/configuration-api). Addresses [#6279](https://togithub.com/cypress-io/cypress/issues/6279).
- We fixed a broken 'Learn more' link within the Node.js Version panel of the Test Runner Settings. Addresses [#6237](https://togithub.com/cypress-io/cypress/issues/6237).
- The browser icons in the Test Runner now display as images with the proper branding. Addresses [#6188](https://togithub.com/cypress-io/cypress/issues/6188).
- We updated the styling of browser dropdown in the Test Runner to look more like a button. Addresses [#6298](https://togithub.com/cypress-io/cypress/issues/6298).
- The timer in the Test Runner now always displays at a consistent length. Addresses [#6168](https://togithub.com/cypress-io/cypress/issues/6168).
- You can print debug information about the memory & CPU usage of Cypress, which can be accessed by enabling the [`cypress:server:util:process_profiler` debug stream](https://on.cypress.io/debugging#Log-memory-and-CPU-usage). Addresses [#6169](https://togithub.com/cypress-io/cypress/issues/6169).
- We added types for plugin events. Addresses [#6322](https://togithub.com/cypress-io/cypress/issues/6322).
**Dependency Updates**
- Added `@benmalka/foxdriver`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359).
- Upgraded `@cypress/browserify-preprocessor` from `1.1.2` to `2.1.1`. Addressed in [#4308](https://togithub.com/cypress-io/cypress/pull/4308) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `bluebird` from `3.5.0` to `3.7.2`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `cachedir` from `1.3.0` to `2.3.0`. Addressed in [#4208](https://togithub.com/cypress-io/cypress/pull/4208) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `chai` from `3.5.0` to `4.2.0`. Addressed in [#2862](https://togithub.com/cypress-io/cypress/pull/2862) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `chai-as-promised` from `6.0.0` to `7.1.1`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `chalk` from `2.4.0` to `3.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `commander` from `2.15.1` to `4.0.1`. Addressed in [#4208](https://togithub.com/cypress-io/cypress/pull/4208) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `debug` from `2.15.1` to `4.0.1`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `execa` from `0.10.0` to `3.3.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Added `firefox-profiler`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359).
- Added `foxdriver`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359).
- Upgraded `fs-extra` from `5.0.0` to `8.1.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `getos` from `3.1.1` to `3.1.4`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `is-ci` from `1.2.1` to `2.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `mocha` from `2.5.3` to `7.0.1`. Addressed in [#2703](https://togithub.com/cypress-io/cypress/pull/2703) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `listr` from `0.12.0` to `0.14.3`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `log-symbols` from `2.2.0` to `3.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Added `marionette-client`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359).
- Upgraded `ramda` from `0.24.1` to `0.26.1`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `sinon` from `3.2.0` to `8.1.1`. Addressed in [#2881](https://togithub.com/cypress-io/cypress/pull/2881) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `strip-ansi` from `3.0.1` to `6.0.0`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359).
- Added `systeminformation`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359).
- Upgraded `support-colors` from `5.5.0` to `7.1.0`. Addressed in [#4208](https://togithub.com/cypress-io/cypress/pull/4208) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
- Upgraded `untildify` from `3.0.3` to `4.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).
Renovate configuration
:date: Schedule: "before 7am every weekday" in timezone Europe/Berlin.
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
: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.8.2
->^4.0.0
Release Notes
cypress-io/cypress
### [`v4.0.0`](https://togithub.com/cypress-io/cypress/releases/v4.0.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.8.3...v4.0.0) _Released 2/6/2020_ **Summary:** Cypress 4.0.0 includes support for [Mozilla Firefox](https://www.mozilla.org/firefox/) browsers (beta support) and [Microsoft Edge](https://www.microsoft.com/edge) (Chromium based) browsers which is a big step forward for [Cross Browser Testing](https://on.cypress.io/cross-browser-testing) in Cypress. We've also updated many of the [underlying tools](https://on.cypress.io/bundled-tools) behind Cypress that bring new powerful features. **Breaking Changes:** **:warning: 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 4.0.** - Mocha, Chai, and Sinon.JS has been upgraded which includes a number of breaking changes and new features. Addresses [#2528](https://togithub.com/cypress-io/cypress/issues/2528), [#2529](https://togithub.com/cypress-io/cypress/issues/2529), [#2866](https://togithub.com/cypress-io/cypress/issues/2866). - During `before:browser:launch`, we no longer yield the second argument as an array of browser arguments and instead yield an `options` object with an `args` property in order to support more advanced browser launch options. Addresses [#6306](https://togithub.com/cypress-io/cypress/issues/6306). - We updated the [Cypress browser objects](https://on.cypress.io/browser-launch-api) of all Chromium-based browsers, including Electron, to have `chromium` set as their `family` field. Addresses [#6243](https://togithub.com/cypress-io/cypress/issues/6243). - The [`--browser` flag](https://on.cypress.io/command-line#cypress-run-browser-lt-browser-name-or-path-gt) no longer accepts `canary` as its sole argument to run Chrome Canary. You now have to specify `chrome:canary` to use the Chrome Canary browser. Addresses [#6243](https://togithub.com/cypress-io/cypress/issues/6243). - [`cy.writeFile()`](https://on.cypress.io/writefile) now yields `null` instead of the contents written to the file in order to more align with the behavior of `fs`. Addresses [#2466](https://togithub.com/cypress-io/cypress/issues/2466). - Installing Cypress on your system now requires Node.js 8+. Addresses [#5632](https://togithub.com/cypress-io/cypress/issues/5632). - Cypress no longer support CJSX. Addresses [#3469](https://togithub.com/cypress-io/cypress/issues/3469). **Features:** - [Mozilla Firefox](https://www.mozilla.org/firefox/) browsers now have beta support. Addresses [#1096](https://togithub.com/cypress-io/cypress/issues/1096). - [Microsoft Edge](https://www.microsoft.com/edge) (Chromium based) browsers are now supported. Addresses [#5433](https://togithub.com/cypress-io/cypress/issues/5433). - There is a new [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) utility function. Addresses [#2023](https://togithub.com/cypress-io/cypress/issues/2023). - We updated the [`Cypress.browser`](https://on.cypress.io/browser) object with a new `channel` property which contains the release channel of the detected browser. Addresses [#6243](https://togithub.com/cypress-io/cypress/issues/6243). - Appending `.only` to multiple tests or suites will now run all tests with the `.only` property. Addresses [#2828](https://togithub.com/cypress-io/cypress/issues/2828). - The [`isFinite` assertion](https://on.cypress.io/assertions) is now supported. Addresses [#5669](https://togithub.com/cypress-io/cypress/issues/5669). - The `empty` assertion is now supported when used against Map objects. Addresses [#6072](https://togithub.com/cypress-io/cypress/issues/6072). - The `nested` assertion chainer property is now supported. Addresses [#3080](https://togithub.com/cypress-io/cypress/issues/3080) and [#5004](https://togithub.com/cypress-io/cypress/issues/5004). **Bugfixes:** - A test or suite appended with an `.only` when multiple tests or suites contained the same title now run correctly. Fixes [#5345](https://togithub.com/cypress-io/cypress/issues/5345). - The [`.its()`](https://on.cypress.io/its) command now properly supports 0 as a value for indexes or object keys. Fixes [#6216](https://togithub.com/cypress-io/cypress/issues/6216). **Documentation Changes:** - Added [Cross Browser Testing Guide](https://on.cypress.io/cross-browser-testing) with helpful CI strategies to consider when running tests across multiple browsers. - Added [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) doc. **Misc:** - We now pass through errors caused when attempting to read arguments passed through [`config`](https://on.cypress.io/configuration-api). Addresses [#6279](https://togithub.com/cypress-io/cypress/issues/6279). - We fixed a broken 'Learn more' link within the Node.js Version panel of the Test Runner Settings. Addresses [#6237](https://togithub.com/cypress-io/cypress/issues/6237). - The browser icons in the Test Runner now display as images with the proper branding. Addresses [#6188](https://togithub.com/cypress-io/cypress/issues/6188). - We updated the styling of browser dropdown in the Test Runner to look more like a button. Addresses [#6298](https://togithub.com/cypress-io/cypress/issues/6298). - The timer in the Test Runner now always displays at a consistent length. Addresses [#6168](https://togithub.com/cypress-io/cypress/issues/6168). - You can print debug information about the memory & CPU usage of Cypress, which can be accessed by enabling the [`cypress:server:util:process_profiler` debug stream](https://on.cypress.io/debugging#Log-memory-and-CPU-usage). Addresses [#6169](https://togithub.com/cypress-io/cypress/issues/6169). - We added types for plugin events. Addresses [#6322](https://togithub.com/cypress-io/cypress/issues/6322). **Dependency Updates** - Added `@benmalka/foxdriver`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359). - Upgraded `@cypress/browserify-preprocessor` from `1.1.2` to `2.1.1`. Addressed in [#4308](https://togithub.com/cypress-io/cypress/pull/4308) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `bluebird` from `3.5.0` to `3.7.2`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `cachedir` from `1.3.0` to `2.3.0`. Addressed in [#4208](https://togithub.com/cypress-io/cypress/pull/4208) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `chai` from `3.5.0` to `4.2.0`. Addressed in [#2862](https://togithub.com/cypress-io/cypress/pull/2862) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `chai-as-promised` from `6.0.0` to `7.1.1`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `chalk` from `2.4.0` to `3.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `commander` from `2.15.1` to `4.0.1`. Addressed in [#4208](https://togithub.com/cypress-io/cypress/pull/4208) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `debug` from `2.15.1` to `4.0.1`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `execa` from `0.10.0` to `3.3.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Added `firefox-profiler`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359). - Added `foxdriver`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359). - Upgraded `fs-extra` from `5.0.0` to `8.1.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `getos` from `3.1.1` to `3.1.4`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `is-ci` from `1.2.1` to `2.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `mocha` from `2.5.3` to `7.0.1`. Addressed in [#2703](https://togithub.com/cypress-io/cypress/pull/2703) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `listr` from `0.12.0` to `0.14.3`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `log-symbols` from `2.2.0` to `3.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Added `marionette-client`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359). - Upgraded `ramda` from `0.24.1` to `0.26.1`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `sinon` from `3.2.0` to `8.1.1`. Addressed in [#2881](https://togithub.com/cypress-io/cypress/pull/2881) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `strip-ansi` from `3.0.1` to `6.0.0`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359). - Added `systeminformation`. Addressed in [#1359](https://togithub.com/cypress-io/cypress/pull/1359). - Upgraded `support-colors` from `5.5.0` to `7.1.0`. Addressed in [#4208](https://togithub.com/cypress-io/cypress/pull/4208) and [#4226](https://togithub.com/cypress-io/cypress/pull/4226). - Upgraded `untildify` from `3.0.3` to `4.0.0`. Addressed in [#4226](https://togithub.com/cypress-io/cypress/pull/4226).Renovate configuration
:date: Schedule: "before 7am every weekday" in timezone Europe/Berlin.
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
: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.