Cypress v3.0.2stable Released Jul 19, 2018
Impact Score: 5/10

Cypress v3.0.2 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: cypress ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Cypress v3.0.2. Source highlight: *Released 6/28/2018*

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (3)

  • Added `Cypress.browser` doc.
  • Added `Cypress.spec` doc.
  • Added `after:screenshot` plugin event doc.

โšก Performance & Enhancements (1)

  • Significantly improved the performance of taking screenshots. #1863.

๐Ÿ”ง Bug Fixes & Patches (6)

  • Screenshots taken with `cy.screenshot()` on 2x DPI are now taken at the correct full size. Fixes #1857 and #2018.
  • Windows users no longer exit with `EPIPE` errors when running `cypress run` in newer versions of node. Fixes #1841 and #2044.
  • Fixed issue where applications programmatically stealing focus would lead to slow runs in Electron when running via `cypress run`. #1909 and #1892.
  • Electron no longer reports the browser as out of focus when running via `cypress run`. Fixes #1939.
  • Modified the `document.hasFocus()` method to return `true` if the top window (Cypress window) is in focus. This should now correctly match how your application behaves outside of Cypress. Fixes #1940.
  • Fixed issue where Cypress would unnecessarily scroll when attempting to locate elements with `position: sticky`. Fixes #1475.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
*Released 6/28/2018* **Bugfixes:** - Screenshots taken with [`cy.screenshot()`](https://on.cypress.io/screenshot) on 2x DPI are now taken at the correct full size. Fixes [#1857](https://github.com/cypress-io/cypress/issues/1857) and [#2018](https://github.com/cypress-io/cypress/issues/2018). - Windows users no longer exit with `EPIPE` errors when running `cypress run` in newer versions of node. Fixes [#1841](https://github.com/cypress-io/cypress/issues/1841) and [#2044](https://github.com/cypress-io/cypress/issues/2044). - Fixed issue where applications programmatically stealing focus would lead to slow runs in Electron when running via `cypress run`. [#1909](https://github.com/cypress-io/cypress/issues/1909) and [#1892](https://github.com/cypress-io/cypress/issues/1892). - Electron no longer reports the browser as out of focus when running via `cypress run`. Fixes [#1939](https://github.com/cypress-io/cypress/issues/1939). - Modified the `document.hasFocus()` method to return `true` if the top window (Cypress window) is in focus. This should now correctly match how your application behaves outside of Cypress. Fixes [#1940](https://github.com/cypress-io/cypress/issues/1940). - Fixed issue where Cypress would unnecessarily scroll when attempting to locate elements with `position: sticky`. Fixes [#1475](https://github.com/cypress-io/cypress/issues/1475). - Fixed a bug where changing the [`integrationFolder`](https://on.cypress.io/configuration#Folders-Files) in Windows would lead to errors with plugins. Fixes [#1704](https://github.com/cypress-io/cypress/issues/1704). - Cypress no longer crashes when a 3rd party server sends invalid `gzip` content. Also fixed issues with incorrectly gunzipping multibyte characters which would potentially lead to serving invalid HTML or JS. Fixes [#1396](https://github.com/cypress-io/cypress/issues/1396) and [#1756](https://github.com/cypress-io/cypress/issues/1756). - The `--silent` flag should now be respected during `npm install cypress` on all OSes. Fixes [#817](https://github.com/cypress-io/cypress/issues/817). - Corrected a typo in the CLI for a warning message. Fixes [#2038](https://github.com/cypress-io/cypress/issues/2038). - Fixed some areas of the Desktop GUI that did not display path names correctly in Windows. Fixes [#1830](https://github.com/cypress-io/cypress/issues/1830). - The `pluginsFile` now supports an absolute path instead of just a relative one. Fixes [#1837](https://github.com/cypress-io/cypress/issues/1837). - Fixed a regression introduced in `3.x.x` where application code that used `setTimeout` with a string argument would see the error `fn.apply is not a function`. Fixes [#1854](https://github.com/cypress-io/cypress/issues/1854). - Fixed issue where preprocessor errors were being swallowed. Fixes [#1877](https://github.com/cypress-io/cypress/issues/1877). - Fixed issue where Cypress would hang indefinitely when starting a new spec when in `cypress run` mode. Additionally we have optimized the code path to not read in the local `state.json` unnecessarily. Fixes [#2013](https://github.com/cypress-io/cypress/issues/2013) and [#1912](https://github.com/cypress-io/cypress/issues/1912) and [#1905](https://github.com/cypress-io/cypress/issues/1905) and [#1890](https://github.com/cypress-io/cypress/issues/1890). - Fixed a couple regressions in the Dashboard where timed out runs stayed "Pending" forever. Fixes [#1891](https://github.com/cypress-io/cypress/issues/1891) and [#1952](https://github.com/cypress-io/cypress/issues/1952). - Fixed another Dashboard regression where an error would throw when recording tests and sending a large list of specs. Fixes [#1901](https://github.com/cypress-io/cypress/issues/1901). - Fixed issue where videos would not be recorded when an object was returned from `before:browser:launch` when in the Electron browser. Fixes [#1992](https://github.com/cypress-io/cypress/issues/1992). - Fixed an issue where Cypress would inject content into the `<header>` tag instead of the `<head>` tag. Fixes [#2026](https://github.com/cypress-io/cypress/issues/2026). - Fixed an oversight where a specific framebusting check was not being properly stripped and removed by the default config option [`modifyObstructiveCode`](https://on.cypress.io/configuration#Browser). Fixes [#2030](https://github.com/cypress-io/cypress/issues/2030) and [#2059](https://github.com/cypress-io/cypress/issues/2059). - Fixed icons visually shifting when tests were running in the Test Runner. Fixes [#1983](https://github.com/cypress-io/cypress/issues/1983). - Server sent events now *finally* work correctly in Cypress. Fixes [#1440](https://github.com/cypress-io/cypress/issues/1440) and [#1111](https://github.com/cypress-io/cypress/issues/1111). - Time traveling snapshots now preserve the styles of empty `<style>` tags with programmatically inserted CSS rules. Fixes [#1226](https://github.com/cypress-io/cypress/issues/1226). **Misc:** - There are now several new CLI commands for interacting with the binary cache: [`cypress cache path`](https://on.cypress.io/command-line#cypress-cache-path), [`cypress cache list`](https://on.cypress.io/command-line#cypress-cache-list), and [`cypress cache clear`](https://on.cypress.io/command-line#cypress-cache-clear). Fixes [#1856](https://github.com/cypress-io/cypress/issues/1856). - We've added a new CLI flag: `--no-exit` for [`cypress run`](https://on.cypress.io/command-line#cypress-run) to keep the browser open after the tests finish running. Fixes [#1871](https://github.com/cypress-io/cypress/issues/1871). - The [CLI](https://on.cypress.io/command-line) now respects config values and environment variables put in your `.npmrc` file. Fixes [#1399](https://github.com/cypress-io/cypress/issues/1399) and [#1853](https://github.com/cypress-io/cypress/issues/1853). - Significantly improved the performance of taking screenshots. [#1863](https://github.com/cypress-io/cypress/issues/1863). - Node module dependencies updated. Fixes [#1674](https://github.com/cypress-io/cypress/issues/1674) and [#1942](https://github.com/cypress-io/cypress/issues/1942). - The bundled version of `ffmpeg` has now been bumped from `3.x.x` to `4.x.x`. This may help with some issues users were experiencing when recording videos. Fixes [#1972](https://github.com/cypress-io/cypress/issues/1972). - Added more debug logs to `ffmpeg` to determine why `ffmpeg` compression sometimes causes Cypress to crash (mostly while running in Travis CI). Fixes [#1971](https://github.com/cypress-io/cypress/issues/1971). - Several improvements to TypeScript typings. Fixes [#1881](https://github.com/cypress-io/cypress/issues/1881) and [#2007](https://github.com/cypress-io/cypress/issues/2007) and [#1899](https://github.com/cypress-io/cypress/issues/1899) and [#1902](https://github.com/cypress-io/cypress/issues/1902) and [#1897](https://github.com/cypress-io/cypress/issues/1897) and [#1907](https://github.com/cypress-io/cypress/issues/1907). - We improved error logging and the user experience around [`cypress verify`](https://on.cypress.io/command-line#cypress-verify). Fixes [#1984](https://github.com/cypress-io/cypress/issues/1984). - We no longer log the `skipping install` message if the Cypress binary is already installed locally. Fixes [#1985](https://github.com/cypress-io/cypress/issues/1985). - Now, by default, screenshots are nested within a folder with the name of **the spec file** that is currently running. Example - the spec named `cypress/integration/foo/bar_spec.js` will save screenshots inside of this directory: `cypress/screenshots/foo/bar_spec.js/*`. Fixes [#1826](https://github.com/cypress-io/cypress/issues/1826). - Passing `foo/bar/baz` as the fileName arg to [`cy.screenshot()`](https://on.cypress.io/screenshot#Take-a-screenshot-and-save-in-a-specific-directory) inside a spec, `app.spec.js`, will now result in the screenshot being saved to a nested folder path such as: `cypress/screenshots/app.spec.js/foo/bar/baz.png`. Fixes [#1771](https://github.com/cypress-io/cypress/issues/1771) and [#668](https://github.com/cypress-io/cypress/issues/668). - We now append `(failed)` to the screenshot filename of screenshots taken automatically during test failure. Fixes [#1923](https://github.com/cypress-io/cypress/issues/1923). - If multiple screenshots are taken during a test that will result in the same filename, their file paths are now appended with a number, i.e. `test name (1).png`. This prevents screenshot files with the same name from being overwritten. Fixes [#1766](https://github.com/cypress-io/cypress/issues/1766). - Screenshot `onAfterScreenshot` and `onBeforeScreenshot` callbacks ar enow invoked for failed tests. They include a `testFailure` property to distinguish between automatic ones and your own use of `cy.screenshot()`. Fixes [#2040](https://github.com/cypress-io/cypress/issues/2040). - There's now an [`after:screenshot` plugin event](https://on.cypress.io/after-screenshot-api) you can use in your `pluginsFile` to work with screenshots after they are taken. This enables you to rename them, move their location, resize them, send them to a service, etc. Fixes [#2039](https://github.com/cypress-io/cypress/issues/2039). - Added `Cypress.browser` object which contains information about the currently running browser. Fixes [#1919](https://github.com/cypress-io/cypress/issues/1919) and [#1961](https://github.com/cypress-io/cypress/issues/1961). - Added `Cypress.spec` object which contains information about the currently running spec. Fixes [#1918](https://github.com/cypress-io/cypress/issues/1918). - Urls displayed in the Command Log during [`cy.visit()`](https://on.cypress.io/visit) are no longer arbitrarily truncated at a set width. Fixes [#1995](https://github.com/cypress-io/cypress/issues/1995). **Documentation Changes:** - [Update `cy.screenshot()` doc to include new file naming behavior](https://on.cypress.io/screenshot) - [Updated "Command Line" doc to include new cache commands](https://on.cypress.io/command-line) - [Added `Cypress.browser` doc.](https://on.cypress.io/browser) - [Added `Cypress.spec` doc.](https://on.cypress.io/spec) - [Added `after:screenshot` plugin event doc.](https://on.cypress.io/after-screenshot-api)