cypress-io/cypress
### [`v3.3.0`](https://togithub.com/cypress-io/cypress/releases/v3.3.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.2.0...v3.3.0)
_Released 5/17/2019_
**Features:**
- Cypress now automatically reads from your system's `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables and proxies traffic accordingly through Cypress based on these values. This includes network traffic within your application under test, when downloading Cypress, and when accessing 'Runs' within the Test Runner. Please read our new [Proxy Configuration](https://on.cypress.io/proxy-configuration) doc to understand more about proxy configuration in Cypress. Fixes [#672](https://togithub.com/cypress-io/cypress/issues/672), [#733](https://togithub.com/cypress-io/cypress/issues/733), [#939](https://togithub.com/cypress-io/cypress/issues/939), [#1039](https://togithub.com/cypress-io/cypress/issues/1039), [#1459](https://togithub.com/cypress-io/cypress/issues/1459), [#1469](https://togithub.com/cypress-io/cypress/issues/1469), [#1470](https://togithub.com/cypress-io/cypress/issues/1470), [#1541](https://togithub.com/cypress-io/cypress/issues/1541), [#1608](https://togithub.com/cypress-io/cypress/issues/1608), [#2295](https://togithub.com/cypress-io/cypress/issues/2295), [#3855](https://togithub.com/cypress-io/cypress/issues/3855), [#3865](https://togithub.com/cypress-io/cypress/issues/3865), [#1401](https://togithub.com/cypress-io/cypress/issues/1401) and [#3857](https://togithub.com/cypress-io/cypress/issues/3857).
- Your project's current proxy settings now display in the [Settings of the Test Runner](https://on.cypress.io/proxy-configuration#View-proxy-settings-in-Cypress). Addresses [#3856](https://togithub.com/cypress-io/cypress/issues/3856).
- Support for `have.focus`, `not.have.focus`, `be.focused` and `not.be.focused` [assertions](https://on.cypress.io/assertions) have been added. Addresses [#97](https://togithub.com/cypress-io/cypress/issues/97).
- We now offer a separate 32bit and 64bit build for Windows. Addresses [#716](https://togithub.com/cypress-io/cypress/issues/716), [#787](https://togithub.com/cypress-io/cypress/issues/787), [#2095](https://togithub.com/cypress-io/cypress/issues/2095), [#706](https://togithub.com/cypress-io/cypress/issues/706), [#3706](https://togithub.com/cypress-io/cypress/issues/3706), and [#4016](https://togithub.com/cypress-io/cypress/issues/4016).
- Requests that go through [`cy.visit()`](https://on.cypress.io/visit) or [`cy.request()`](https://on.cypress.io/request) are now automatically retried under the hood when the request fails. This more closely reflects Chrome's default behavior on requests. Addresses [#4013](https://togithub.com/cypress-io/cypress/issues/4013), [#898](https://togithub.com/cypress-io/cypress/issues/898) and [#1013](https://togithub.com/cypress-io/cypress/issues/1013).
- [`cy.visit()`](https://on.cypress.io/visit) and [`cy.request()`](https://on.cypress.io/request) now support new options `retryOnStatusCodeFailure` and `retryOnNetworkFailure` to allow changing Cypress's automatic request retry on status codes and network errors. Addresses [#4013](https://togithub.com/cypress-io/cypress/issues/4013), [#898](https://togithub.com/cypress-io/cypress/issues/898) and [#1013](https://togithub.com/cypress-io/cypress/issues/1013).
- [`.type()`](https://on.cypress.io/type) now supports the special character sequences `{insert}`, `{pageup}`, and `{pagedown}`. Addresses [#3845](https://togithub.com/cypress-io/cypress/issues/3845).
- We now indicate which XHRs match which alias in the Command Log on [`.wait()`](https://on.cypress.io/wait) when they match an alias multiple times. Addresses [#477](https://togithub.com/cypress-io/cypress/issues/477).
- The console log when clicking on the [`cy.visit()`](https://on.cypress.io/visit) command now displays its resolved `options` arguments. Addresses [#3721](https://togithub.com/cypress-io/cypress/issues/3721).
- There's a new 'canceled' XHR status shown on the Command Log to indicate the difference between calling `xhr.abort()` and the browser canceling the request due to page navigation. Addresses [#3973](https://togithub.com/cypress-io/cypress/issues/3973).
- The Electron browser now runs Chrome Version 61. Addresses [#4000](https://togithub.com/cypress-io/cypress/issues/4000).
- Running Cypress via `cypress run` now supports scripts of `type="module"`. Fixes [#3696](https://togithub.com/cypress-io/cypress/issues/3696).
- Exposed [`Cypress.isCy()`](https://on.cypress.io/iscy) method to check if a value is a valid instance of `cy` or a `cy` chainable. Fixes [#3822](https://togithub.com/cypress-io/cypress/issues/3822).
- There is a new "Download Chromium" menu item in the "Help" menu of the Test Runner links to Cypress's [Chromium Download Tool](https://on.cypress.io/chromium-downloads). Addresses [#3977](https://togithub.com/cypress-io/cypress/issues/3977)
**Bugfixes:**
- Fixed a regression introduced in [3.2.0](https://on.cypress.io/changelog#3-2-0) that caused an error to throw when visiting domains with certain public suffixes. Fixes [#3717](https://togithub.com/cypress-io/cypress/issues/3717).
- When running Cypress with `NODE_OPTIONS` environment variables set, Cypress no longer issues an incorrect 0 exit code. [#1676](https://togithub.com/cypress-io/cypress/issues/1676)
- Fixed a regression introduced in [3.2.0](https://on.cypress.io/changelog#3-2-0) that caused [`.its()`](https://on.cypress.io/its) to no longer retry when it yields `undefined`. [#3837](https://togithub.com/cypress-io/cypress/issues/3837)
- Fixed a regression introduced in [3.2.0](https://on.cypress.io/changelog#3-2-0) that caused [`cy.fixture()`](https://on.cypress.io/fixture) to throw a `EISDIR` error if a directory had the same name as a file within that same directory. Fixes [#3739](https://togithub.com/cypress-io/cypress/issues/3739).
- `user-agent` headers sent as arguments to [`cy.request()`](https://on.cypress.io/request) and [`cy.visit()`](https://on.cypress.io/visit) are now properly sent. Fixes [#3873](https://togithub.com/cypress-io/cypress/issues/3873) and [#3719](https://togithub.com/cypress-io/cypress/issues/3719).
- When a request is proxied through Cypress and there is a network error, we no longer send an HTML response with a 500 status code. We now kill the browser-facing socket and let the network error be handled by the application under test. Fixes [#4101](https://togithub.com/cypress-io/cypress/issues/4101), [#4231](https://togithub.com/cypress-io/cypress/issues/4231), [#1036](https://togithub.com/cypress-io/cypress/issues/1036), [#4231](https://togithub.com/cypress-io/cypress/issues/4231), and [#1398](https://togithub.com/cypress-io/cypress/issues/1398).
- We changed Cypress's implementation to no longer rely on internal XHR events when the browser navigates. This fixes a a bug in Chrome 71+ that could cause XHRs to pend forever. Fixes [#3973](https://togithub.com/cypress-io/cypress/issues/3973) and [#4130](https://togithub.com/cypress-io/cypress/issues/4130)
- We greatly improved the speed of proxied requests through our network layer. Fixes [#3192](https://togithub.com/cypress-io/cypress/issues/3192) and [#1469](https://togithub.com/cypress-io/cypress/issues/1469).
- If an error occurs during `cypress verify`, we now kill the verification process after 10 seconds and print the error message. This should prevent some situations where Cypress would hang during installation or verification and never exit. Fixes [#819](https://togithub.com/cypress-io/cypress/issues/819).
- Cypress automatically retries `cypress verify` and `cypress run` commands by starting its own Xvfb server on Linux if the first attempt fails due to possible `DISPLAY` misconfiguration. Addresses [#4034](https://togithub.com/cypress-io/cypress/issues/4034).
- Cypress now properly handles typing JavaScript object prototype methods (like `hasOwnProperty`) into [.type()](https://on.cypress.io/type). Fixes [#3423](https://togithub.com/cypress-io/cypress/issues/3423).
- We now set the `form` option to `true` if the `Content-Type` header equals `application/x-www-form-urlencoded` and `json` is not already set by a user. This fixes a situation where Cypress would try to parse the `body` as a string, resulting in a confusing error message. Fixes [#2923](https://togithub.com/cypress-io/cypress/issues/2923).
- [`cy.contains()`](https://on.cypress.io/contains) now correctly handles comma delimited arguments passed to the selector argument. Fixes [#2407](https://togithub.com/cypress-io/cypress/issues/2407).
- Passing a browser path containing spaces now works properly when passed to the `--browser` argument. Fixes [#3979](https://togithub.com/cypress-io/cypress/issues/3979)
- Fixed display of tooltips when selecting elements from the Selector Playground so that they display at the correct coordinates when scrolling. Fixes [#1351](https://togithub.com/cypress-io/cypress/issues/1351).
- The lists of spec files now display at the correct indentation level when they are nested more than 5 directories deep. Fixes [#3652](https://togithub.com/cypress-io/cypress/issues/3652).
- Cypress now properly parses environment variables with empty values. Fixes [#3742](https://togithub.com/cypress-io/cypress/issues/3742).
- Assertions running outside of a test are now properly handled in Cypress instead of throwing internal errors. Fixes [#3926](https://togithub.com/cypress-io/cypress/issues/3926).
- [`Cypress.log()`](https://on.cypress.io/cypress-log) now throws an error when not properly passed an object as its argument. Addresses [#3658](https://togithub.com/cypress-io/cypress/issues/3658).
- [`Cypress.log()`](https://on.cypress.io/cypress-log) no longer throws when called before any other Cypress commands. Fixes [#3658](https://togithub.com/cypress-io/cypress/issues/3658).
**Misc:**
- We now better support capturing environment variables within Azure DevOps. Addresses [#3657](https://togithub.com/cypress-io/cypress/issues/3657).
- Cypress now only scans for spec changes when the watcher sees changes, rather than polling to scan. Addresses [#3069](https://togithub.com/cypress-io/cypress/issues/3069).
- The ability to open the context menu to see "Inspect Element" has been reenabled in the Electron browser. Addresses [#4002](https://togithub.com/cypress-io/cypress/issues/4002).
- We no longer package non-Windows `ffmpeg` builds with Windows builds, resulting in a 35-40% reduction in zipped size and a 36-43% reduction in unzipped size of download. Addresses [#3888](https://togithub.com/cypress-io/cypress/issues/3888).
- The warning messages when going over test recording limits have been updated to correctly display 'monthly tests' and 'private tests' where necessary. Addresses [#4024](https://togithub.com/cypress-io/cypress/issues/4024).
- When an HTTP request is received by the proxy layer, by default, we send it with a `Connection: keep-alive` header so that the connection will be reused if possible. Addresses [#3857](https://togithub.com/cypress-io/cypress/issues/3857).
- Improved accessibility of Test Runner for screen readers. Addresses [#3850](https://togithub.com/cypress-io/cypress/issues/3850).
- Cypress type definition now allow a `timeout` option in [`cy.hash()`](https://on.cypress.io/hash). Fixes [#3844](https://togithub.com/cypress-io/cypress/issues/3844).
- Fixed type definition for `match` assertion so that it now only accepts `RegExp` type arguments. Fixes [#2578](https://togithub.com/cypress-io/cypress/issues/2578).
- The [`.trigger()`](https://on.cypress.io/trigger) type definition now expects its `options` to be `ObjectLike`. Addressed in [#3809](https://togithub.com/cypress-io/cypress/pull/3809).
- The [`cy.clock()`](https://on.cypress.io/clock) type definition now allows for type `Date`. Fixed in [#4106](https://togithub.com/cypress-io/cypress/pull/4106).
- Added type definition for undocumented `Cypress.LocalStorage.clear` method. Fixes [#4070](https://togithub.com/cypress-io/cypress/issues/4070).
- Added type definition for [`Cypress.isCy()`](https://on.cypress.io/iscy) method. Fixes [#3822](https://togithub.com/cypress-io/cypress/issues/3822).
- Added missing type definitions for some [`cy.visit()`](https://on.cypress.io/visit) options. Fixes [#3989](https://togithub.com/cypress-io/cypress/issues/3989).
- The spinner animation should more smoothly spin when a command is pending in the Test Runner. Addressed in [#4005](https://togithub.com/cypress-io/cypress/pull/4005).
**Documentation Changes:**
- New [Proxy Configuration](https://on.cypress.io/proxy-configuration) doc. Addressed in [#1486](https://togithub.com/cypress-io/cypress-documentation/pull/1486).
- Added `{insert}`, `{pageup}`, and `{pagedown}` as supported special character sequences to [`.type()`](https://on.cypress.io/type#Arguments). Addressed in [#1567](https://togithub.com/cypress-io/cypress-documentation/pull/1567).
- Added newly supported `focus` assertion to [Assertions](https://on.cypress.io/assertions) doc. Addresses [#1372](https://togithub.com/cypress-io/cypress-documentation/pull/1372).
- Added new options `retryOnStatusCodeFailure` and `retryOnNetworkFailure` to [`cy.visit()`](https://on.cypress.io/visit) and [`cy.request()`](https://on.cypress.io/request).
- Updated [install instructions for Windows](https://on.cypress.io/installing-cypress#Download-URLs) on how to target 64bit and 32bit infrastructures. Addressed in [#1568](https://togithub.com/cypress-io/cypress-documentation/issues/1568).
- Updated [`.its()`](https://on.cypress.io/its) and [`.invoke()`](https://on.cypress.io/invoke) docs to better explain how default assertions are handled. Addresses [#1643](https://togithub.com/cypress-io/cypress-documentation/issues/1643).
- Updated our [Roadmap](https://on.cypress.io/roadmap) to more closely reflect the work we are doing. Addressed in [#1567](https://togithub.com/cypress-io/cypress-documentation/pull/1639).
- Added a section about how to request our new [Open Source Plan](https://on.cypress.io/dashboard-service#Open-Source-Plan) in the Dashboard Service doc. Addressed in [#1567](https://togithub.com/cypress-io/cypress-documentation/pull/1584).
**Dependency Updates**
- Upgraded `commit-info` from `2.1.2` to `2.1.2`. Addressed in [#4045](https://togithub.com/cypress-io/cypress/pull/4045)
- Upgraded `data-uri-to-buffer` from `0.0.4` to `1.2.0`. Addresses [#4152](https://togithub.com/cypress-io/cypress/issues/4152).
- Upgraded `electron` from `1.8.2` to `2.0.18`. Addresses [#4000](https://togithub.com/cypress-io/cypress/issues/4000).
- Upgraded `electron-packager` from `9.1.0` to `13.1.1`. Addresses [#4155](https://togithub.com/cypress-io/cypress/issues/4155).
- Upgraded `express-handlebars` from `3.0.0` to `3.0.2`. Addressed in [#4086](https://togithub.com/cypress-io/cypress/pull/4086).
- Upgraded `find-process` from `1.2.1` to `1.4.1`. Addressed in [#4087](https://togithub.com/cypress-io/cypress/pull/4087).
- Upgraded `getos` from `2.8.4` to `3.1.1`. Addressed in [#4222](https://togithub.com/cypress-io/cypress/pull/4222).
- Upgraded `http-status-codes` from `1.3.0` to `1.3.2`. Addressed in [#3949](https://togithub.com/cypress-io/cypress/pull/3949).
- Upgraded `jimp` from `0.6.0` to `0.6.4`. Addressed in [#4097](https://togithub.com/cypress-io/cypress/pull/4097).
- Removed `method-override`. Addressed in [#4209](https://togithub.com/cypress-io/cypress/pull/4209).
- Upgraded `node` from `8.2.1` to `8.9.3`. Addressed in [#4001](https://togithub.com/cypress-io/cypress/pull/4001).
- Downgraded `parse-domain` from 2.1.7 to 2.0.0 to avoid a regression released in `parse-domain`. Addresses [#3717](https://togithub.com/cypress-io/cypress/issues/3717).
- Upgraded `pluralize` from `3.1.0` to `7.0.0`. Addressed in [#4205](https://togithub.com/cypress-io/cypress/pull/4205) and [#4206](https://togithub.com/cypress-io/cypress/pull/4206).
- Upgraded `semver` from `5.6.0` to `5.7.0`. Addressed in [#4112](https://togithub.com/cypress-io/cypress/pull/4112).
- Upgraded `send` from `0.16.2` to `0.17.0`. Addressed in [#4134](https://togithub.com/cypress-io/cypress/pull/4134).
- Upgraded `supports-color` from `5.5.0` to `6.1.0`. Addressed in [#4150](https://togithub.com/cypress-io/cypress/pull/4150).
- Removed `tar-fs`. Addressed in [#4148](https://togithub.com/cypress-io/cypress/pull/4148).
- Upgraded `term-size` from `1.2.0` to `2.0.0`. Addressed in [#4148](https://togithub.com/cypress-io/cypress/pull/4148).
- Upgraded `tmp` from `0.0.33` to `0.1.0`. Addressed in [#4111](https://togithub.com/cypress-io/cypress/pull/4111).
- Upgraded `trash` from `4.3.0` to `5.2.0`. Addressed in [#4140](https://togithub.com/cypress-io/cypress/pull/4140).
- Upgraded `url-parse` from `1.4.4` to `1.4.7`. Addressed in [#4110](https://togithub.com/cypress-io/cypress/pull/4110).
- Upgraded `widest-line` from `2.0.1` to `3.1.0`. Addressed in [#4139](https://togithub.com/cypress-io/cypress/pull/4139).
- We updated and removed some dependencies used for development.
### [`v3.2.0`](https://togithub.com/cypress-io/cypress/releases/v3.2.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.5...v3.2.0)
_Released 3/15/2019_
**Features:**
- [`cy.visit()`](https://on.cypress.io/visit) has been expanded to allow options `url`, `method`, `body`, and `headers`. This allows [`cy.visit()`](https://on.cypress.io/visit) to be called with a `POST` method or with headers like `Accept-Language` or `Authorization`. Fixes [#1500](https://togithub.com/cypress-io/cypress/issues/1500), [#1904](https://togithub.com/cypress-io/cypress/issues/1904) and [#908](https://togithub.com/cypress-io/cypress/issues/908).
- [`cy.request()`](https://on.cypress.io/request) now allows any valid HTTP `method` to be used including `TRACE`, `COPY`, `LOCK`, `MKCOL`, `MOVE`, `PURGE`, `PROPFIND`, `PROPPATCH`, `UNLOCK`, `REPORT`, `MKACTIVITY`, `CHECKOUT`, `MERGE`, `M-SEARCH`, `NOTIFY`, `SUBSCRIBE`, `UNSUBSCRIBE`, `SEARCH`, and `CONNECT`. Addresses [#1302](https://togithub.com/cypress-io/cypress/issues/1302)
- The [`--browser` argument](https://on.cypress.io/command-line#cypress-run-browser-lt-browser-name-or-path-gt) of the [Command Line](https://on.cypress.io/command-line) and the [`browser` argument](https://on.cypress.io/module-api#cypress-run) of the [Module API](https://on.cypress.io/module-api) have been updated to allow passing a ``. Addresses [#1026](https://togithub.com/cypress-io/cypress/issues/1026).
- [`cy.type()`](https://on.cypress.io/type) now accepts `{home}` and `{end}` special character sequences to move the cursor to the start or end of a line. Addresses [#2033](https://togithub.com/cypress-io/cypress/issues/2033).
- The Cypress Chrome extension now has a static ID of `caljajdfkjjjdehjdoimjkkakekklcck`. This allows Cypress to be added to extension whitelists for those working under corporate policies that prohibit extensions. Addresses [#3673](https://togithub.com/cypress-io/cypress/issues/3673), [#1239](https://togithub.com/cypress-io/cypress/issues/1239) and [#2494](https://togithub.com/cypress-io/cypress/issues/2494).
**Bugfixes:**
- Problems logging in through GitHub in the Test Runner have been fixed. The GitHub login window no longer shows the browser support banner and the "Authorize cypress-io" button is no longer disabled. Fixes [#1251](https://togithub.com/cypress-io/cypress/issues/1251).
- Fixed an issue when testing applications using older versions of jQuery. They now no longer throw `item.first is not a function`. Fixes [#2927](https://togithub.com/cypress-io/cypress/issues/2927).
- Cypress now detects more instances of `browser` installations. Fixes [#3183](https://togithub.com/cypress-io/cypress/issues/3183) and [#3218](https://togithub.com/cypress-io/cypress/issues/3218).
- Fixed issue with loading fixture files containing more than one `.` in their filename while not specifying the file extension. We are also displaying a clearer warning when a fixture file cannot be found. Fixes [#1402](https://togithub.com/cypress-io/cypress/issues/1402).
- All third party `@types` have been moved from Cypress `dependencies` into `devDependencies`. This should fix situations where user's type dependencies were conflicting with Cypress's third party type definitions. Fixes [#3371](https://togithub.com/cypress-io/cypress/issues/3371) and [#1227](https://togithub.com/cypress-io/cypress/issues/1227).
- `Cypress.config('baseUrl')` has been updated to no longer strip singular `/` at the end of urls and instead only strip instances of multiple `/`. Fixes [#3540](https://togithub.com/cypress-io/cypress/issues/3540).
- The prompt to "Restore pages?" is no longer displayed within Chrome upon restarting a crashed Chrome window. Addresses [#2048](https://togithub.com/cypress-io/cypress/issues/2048).
- [`cy.wrap()`](https://on.cypress.io/wrap) no longer throws an error when a non-jQuery wrapped DOM element is passed in as an argument. Fixes [#3549](https://togithub.com/cypress-io/cypress/issues/3549).
- Fixed issue where all arguments passed to `setTimeout` or `setInterval` were not properly passed on to the target function. Fixes [#3592](https://togithub.com/cypress-io/cypress/issues/3592).
- [`.filter()`](https://on.cypress.io/filter) has been updated so that when called with a function, the options are now properly read. Fixes [#3315](https://togithub.com/cypress-io/cypress/issues/3315).
- Cypress's recognition of websites attempting framebusting has been updated to include framebusting code wrapped within `()`. [#3267](https://togithub.com/cypress-io/cypress/issues/3267)
- When `.its()` returns `undefined` it no longer errors. It will now follow the same logic as all other commands and only fail when directly by a [`.should()`](https://on.cypress.io/should) command with an assertion that is not met. Fixes [#1531](https://togithub.com/cypress-io/cypress/issues/1531).
- When [`cy.wrap()`](https://on.cypress.io/wrap) is followed directly by a [`.should()`](https://on.cypress.io/should) command, `cy.wrap()` will now [retry](https://on.cypress.io/retry-ability) when its argument evaluates to `undefined` until it meets the requirements of the assertion or the `cy.wrap()` command times out. Fixes [#3241](https://togithub.com/cypress-io/cypress/issues/3241).
**Misc:**
- We now display a warning when passing an argument to `--spec` that is not surrounded by quotes `""` recommending that the argument instead be surrounded by quotes. In some cases, not providing quotes can cause the arguments to be read in a way that is likely not its intended use. Addresses [#3318](https://togithub.com/cypress-io/cypress/issues/3318) and [#2298](https://togithub.com/cypress-io/cypress/issues/2298).
- The number of logs printed when installing Cypress in docker has been reduced. Partially addresses [#1243](https://togithub.com/cypress-io/cypress/issues/1243).
- The seeded Kitchen Sink examples have some new examples showing how to add a message to assertions, how to compare the text content of two elements, and how to make assertions about `data` attributes. The examples also have some small typo fixes. Fixes [#502](https://togithub.com/cypress-io/cypress/issues/502). Addressed in [#3272](https://togithub.com/cypress-io/cypress/pull/3272), [#3287](https://togithub.com/cypress-io/cypress/pull/3287), and [#3700](https://togithub.com/cypress-io/cypress/pull/3700).
- We now only mount internal servers on `loopback`. Addresses [#3712](https://togithub.com/cypress-io/cypress/issues/3712).
- The instructions in Cypress's update window now include `yarn` update instructions alongside `npm`. Addresses [#2871](https://togithub.com/cypress-io/cypress/issues/2871).
- The spec file's font weight has been increased within the Test Runner for better readability. Addressed in [#3065](https://togithub.com/cypress-io/cypress/issues/3065).
- We improved the error message displayed when a record key is unrecognized during `cypress run`. Addresses [#1449](https://togithub.com/cypress-io/cypress/issues/1449).
- We improved the typings when using `Cypress.on` to listen for `window.alert` events to allow for `Sinon.stub`. Fixes [#3451](https://togithub.com/cypress-io/cypress/issues/3451).
- Fixed typo in typing for [`.trigger`](https://on.cypress.io/trigger) options. Addressed in [#3588](https://togithub.com/cypress-io/cypress/pull/3588).
**Documentation Changes:**
- New [Retryability](https://on.cypress.io/retry-ability) doc [#1278](https://togithub.com/cypress-io/cypress-documentation/issues/1278)
- Updated `--browser` and `browser` args to accept `path` [#1419](https://togithub.com/cypress-io/cypress-documentation/issues/1419)
- Add documentation on how to 'accept' or 'reject' project transfer [#1474](https://togithub.com/cypress-io/cypress-documentation/issues/1474)
- Updated [docs](https://on.cypress.io/launching-browsers) on explain how to run Chrome and Chromium browsers [#1339](https://togithub.com/cypress-io/cypress-documentation/issues/1339)
- Added `{home}` and `{end}` character sequences to [`cy.type()`](https://on.cypress.io/type) doc. Also wrote better description of what `{downarrow}` and `{uparrow}` character sequences actually do. [#1347](https://togithub.com/cypress-io/cypress-documentation/pull/1347)
- Added all newly supported HTTP methods to [`cy.request()`](https://on.cypress.io/request) doc.
- Add new section to [Debugging](https://on.cypress.io/debugging#Chrome-extension-whitelisting) doc explaining whitelisting the Cypress Chrome extension.
- Fixed code example for google analytics stubbing [#1454](https://togithub.com/cypress-io/cypress-documentation/issues/1454)
**Dependency Updates**
- Upgraded `@cypress/commit-info` from `2.1.1` to `2.1.2`. [#3327](https://togithub.com/cypress-io/cypress/pull/3327).
- Upgraded `@cypress/xvfb` from `1.2.3` to `1.2.4`. [#3328](https://togithub.com/cypress-io/cypress/pull/3328).
- Upgraded `@ffmpeg-installer/ffmpeg` from `1.0.15` to `1.0.17`. [#3329](https://togithub.com/cypress-io/cypress/pull/3329).
- Upgraded `cachedir` from `1.3.0` to `2.1.0`. [#3660](https://togithub.com/cypress-io/cypress/pull/3660).
- Upgraded `chalk` from `2.4.1` to `2.4.2`. [#3362](https://togithub.com/cypress-io/cypress/pull/3362).
- Upgraded `chokidar` from `1.6.0` to `1.7.0`. [#3363](https://togithub.com/cypress-io/cypress/pull/3363).
- Upgraded `coffee-script` from `1.12.5` to `1.12.7`. [#3365](https://togithub.com/cypress-io/cypress/pull/3365).
- Upgraded `commander` from `2.11.0` to `2.19.0`. [#3366](https://togithub.com/cypress-io/cypress/pull/3366).
- Upgraded `common-tags` from `1.4.0` to `1.8.0`. [#3368](https://togithub.com/cypress-io/cypress/pull/3368).
- Upgraded `compression` from `1.7.2` to `1.7.3`. [#3379](https://togithub.com/cypress-io/cypress/pull/3379).
- Upgraded `cookie` from `0.2.4` to `0.3.1`. [#3380](https://togithub.com/cypress-io/cypress/pull/3380).
- Upgraded `cookie-parser` from `1.4.3` to `1.4.4`. [#3443](https://togithub.com/cypress-io/cypress/pull/3443).
- Upgraded `dependency-tree` from `6.4.0` to `6.5.0`. [#3381](https://togithub.com/cypress-io/cypress/pull/3381).
- Upgraded `electron-context-menu` from `0.8.0` to `0.11.0`. [#3383](https://togithub.com/cypress-io/cypress/pull/3383).
- Upgraded `electron-packager` from `9.0.1` to `9.1.0`. [#3384](https://togithub.com/cypress-io/cypress/pull/3384).
- Upgraded `electron-positioner` from `3.0.0` to `3.0.1`. [#3385](https://togithub.com/cypress-io/cypress/pull/3385).
- Upgraded `errorhandler` from `1.1.1` to `1.5.0`. [#3386](https://togithub.com/cypress-io/cypress/pull/3386).
- Upgraded `express` from `4.16.2` to `4.16.4`. [#3409](https://togithub.com/cypress-io/cypress/pull/3409).
- Upgraded `extract-zip` from `1.6.6` to `1.6.7`. [#3410](https://togithub.com/cypress-io/cypress/pull/3410).
- Upgraded `glob` from `7.1.2` to `7.1.3`. [#3412](https://togithub.com/cypress-io/cypress/pull/3412).
- Upgraded `image-size` from `0.5.5` to `0.7.2`. [#3413](https://togithub.com/cypress-io/cypress/pull/3413) and [#3500](https://togithub.com/cypress-io/cypress/pull/3500).
- Upgraded `is-ci` from `1.0.10` to `1.2.1`. [#3414](https://togithub.com/cypress-io/cypress/pull/3414).
- Upgraded `lodash` from `4.17.4` to `4.17.11`. [#3344](https://togithub.com/cypress-io/cypress/pull/3344).
- Upgraded `mocha-junit-reporter` from `1.17.0` to `1.18.0`. [#3417](https://togithub.com/cypress-io/cypress/pull/3417).
- Upgraded `moment` from `2.23.0` to `2.24.0`. [#3433](https://togithub.com/cypress-io/cypress/pull/3433).
- Upgraded `morgan` from `1.3.0` to `1.9.1`. [#3434](https://togithub.com/cypress-io/cypress/pull/3434).
- Upgraded `node-uuid` from `1.4.1` to `1.4.8`. [#3436](https://togithub.com/cypress-io/cypress/pull/3436).
- Upgraded `parse-domain` from `2.0.0` to `2.1.7`. [#3437](https://togithub.com/cypress-io/cypress/pull/3437).
- Upgraded `request` from `2.87.0` to `2.88.0`. [#3444](https://togithub.com/cypress-io/cypress/pull/3444).
- Upgraded `request-progress` from `0.3.1` to `0.4.0`. [#3445](https://togithub.com/cypress-io/cypress/pull/3445).
- Upgraded `request-promise` from `4.1.1` to `4.2.4`. [#3446](https://togithub.com/cypress-io/cypress/pull/3446) and [#3476](https://togithub.com/cypress-io/cypress/pull/3476).
- Upgraded `return-deep-diff` from `0.2.9` to `0.3.0`. [#3447](https://togithub.com/cypress-io/cypress/pull/3447).
- Upgraded `send` from `0.14.2` to `0.16.2`. [#3448](https://togithub.com/cypress-io/cypress/pull/3448).
- Upgraded `ssl-root-cas` from `1.2.5` to `1.3.1`. [#3449](https://togithub.com/cypress-io/cypress/pull/3449).
- Upgraded `supports-color` from `5.1.0` to `5.5.0`. [#3464](https://togithub.com/cypress-io/cypress/pull/3464).
- Upgraded `through` from `2.3.6` to `2.3.8`. [#3465](https://togithub.com/cypress-io/cypress/pull/3465).
- Upgraded `tmp` from `0.0.31` to `0.0.33`. [#3466](https://togithub.com/cypress-io/cypress/pull/3466).
- Upgraded `tough-cookie` from `2.4.3` to `3.0.1`. [#3477](https://togithub.com/cypress-io/cypress/pull/3477) and [#3659](https://togithub.com/cypress-io/cypress/pull/3659).
- Upgraded `trash` from `4.0.0` to `4.3.0`. [#3478](https://togithub.com/cypress-io/cypress/pull/3478).
- Upgraded `underscore.string` from `3.3.4` to `3.3.5`. [#3480](https://togithub.com/cypress-io/cypress/pull/3480).
- Upgraded `yauzl` from `2.8.0` to `2.10.0`. [#3481](https://togithub.com/cypress-io/cypress/pull/3481). Potentially fixes [#3515](https://togithub.com/cypress-io/cypress/issues/3515).
- We also updated many dependencies used for development and removed some unused dependencies.
### [`v3.1.5`](https://togithub.com/cypress-io/cypress/releases/v3.1.5)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.4...v3.1.5)
_Released 1/30/2019_
**Bugfixes:**
- Fixed issue where the `onLoad` event was never being called when calling `cy.visit()` on the url Cypress is currently navigated to. Fixes [#1311](https://togithub.com/cypress-io/cypress/issues/1311).
- Fixed regression introduced in `3.1.4` that caused an `InvalidStateError` when visiting a page with an XHR request with a `responseType` other than `text` or `''`. Fixes [#3008](https://togithub.com/cypress-io/cypress/issues/3008).
- Fixed several issues in Chrome\* versions >= 72 in the Cypress proxy that caused using `cy.visit()` with `localhost` to fail, or using `localhost` inside of the `baseUrl` configuration option. Fixes [#1872](https://togithub.com/cypress-io/cypress/issues/1872) and [#3252](https://togithub.com/cypress-io/cypress/issues/3252) and [#1777](https://togithub.com/cypress-io/cypress/issues/1777).
- Fixed another issue in Chrome\* versions >= 72 where a scrollable command log would cause the entire application to be scrollable. Fixes [#3253](https://togithub.com/cypress-io/cypress/issues/3253).
- Fixed not correctly passing the `timeout` option for [`cy.request()`](https://on.cypress.io/request). This should fix some instances where large `timeout` values would cause `ESOCKETTIMEDOUT` errors. Fixes [#2669](https://togithub.com/cypress-io/cypress/issues/2669).
- Fixed issue where Cypress would inject a script tag before the `` declaration when the document only contained the doctype declaration. Fixes [#2617](https://togithub.com/cypress-io/cypress/issues/2617).
- The error message when visiting a site with an invalid content-type now prints the correct content-type of the response Cypress received from the web server. Fixes [#3101](https://togithub.com/cypress-io/cypress/issues/3101).
- Fixed issue where an internal `layout.html` file would inadvertently get loaded instead of the spec file. Fixes [#2891](https://togithub.com/cypress-io/cypress/issues/2891).
- Fixed issue where the Chromium browser was not detected in Linux due to Cypress not distinguishing between Chrome and Chromium browsers with the same version. Fixes [#1400](https://togithub.com/cypress-io/cypress/issues/1400).
- Fixed issue of Cypress being unable to play videos with `autoplay`. We now pass the `--no-user-gesture-required` command line switch to Chrome. Fixes [#2376](https://togithub.com/cypress-io/cypress/issues/2376).
- We now pass the Chromium command line switches `--use-fake-ui-for-media-stream` and `--use-fake-device-for-media-stream` to Chrome by default in order to better support testing webcam functionality. Fixes [#2704](https://togithub.com/cypress-io/cypress/issues/2704).
- Updated filenames allowed for screenshots to allow more characters that are valid. Fixes [#3052](https://togithub.com/cypress-io/cypress/issues/3052).
- Fixed TypeScript error caused by `dtslint` dependency introduced in 3.1.4. Fixes [#3024](https://togithub.com/cypress-io/cypress/issues/3024) and [#3136](https://togithub.com/cypress-io/cypress/issues/3136).
- Improved error message displayed for `cypress cache` to not display `[object Object]` and made `--help` labels more descriptive. Fixes [#2589](https://togithub.com/cypress-io/cypress/issues/2589).
**Misc:**
- Improved errors shown when opening a project in the Desktop Application. The design is more readable and the error's stack trace is now expandable. Addresses [#2955](https://togithub.com/cypress-io/cypress/issues/2955).
- Improved experience of search in Desktop Application when there are no results. Addresses [#3146](https://togithub.com/cypress-io/cypress/issues/3146).
- Updated tooltip content so that it no longer flows outside of the tooltip in the Test Runner when displaying longer routes. Fixes [#2980](https://togithub.com/cypress-io/cypress/issues/2980).
- Added word labels beside icons in Desktop Application for 'Support' and 'Docs' links. Addresses [#3091](https://togithub.com/cypress-io/cypress/issues/3091).
- Updated the CLI to no longer silence important stdout from `cypress version`, `cypress cache list` etc commands. Addresses [#2705](https://togithub.com/cypress-io/cypress/issues/2705).
- Fixed incorrect type definition for options usage for [.then()](https://on.cypress.io/then). Addresses [#3075](https://togithub.com/cypress-io/cypress/issues/3075).
- Fixed incorrect JSDoc comments in type definition for [.focus()](https://on.cypress.io/focus) and better formatted comments in type definitions. Addresses [#2975](https://togithub.com/cypress-io/cypress/issues/2975) and [#2954](https://togithub.com/cypress-io/cypress/issues/2954).
**Dependency Updates**
- We've begun automating our dependency update process in order to avoid accidental dependency updates. Addresses [#2990](https://togithub.com/cypress-io/cypress/issues/2990) and [#3025](https://togithub.com/cypress-io/cypress/issues/3025).
- Upgraded `sinon` from `3.2.0` to `3.3.0`. Addresses [#1328](https://togithub.com/cypress-io/cypress/issues/1328).
**Documentation Changes:**
- Added example on how to use a fake video for webcam testing to [Browser API doc](https://on.cypress.io/browser-launch-api#Use-fake-video-for-webcam-testing).
### [`v3.1.4`](https://togithub.com/cypress-io/cypress/releases/v3.1.4)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.3...v3.1.4)
_Released 12/25/2018_
🎄Merry Christmas everyone!
**Known regressions in this release ⚠️**
- TypeScript `Omit` and `@ts-ignore` combination [#3024](https://togithub.com/cypress-io/cypress/issues/3024)
- frequent `InvalidStateError` when running tests [#3008](https://togithub.com/cypress-io/cypress/issues/3008)
**Bugfixes:**
- Fixed a very longstanding (!) issue where [`.click()`](https://on.cypress.io/click) would fail to click the center coordinates of elements with style `display: inline`. Cypress would instead report that the element was being covered causing the error: `cy.click() failed because this element is being covered by another element`. Fixes [#210](https://togithub.com/cypress-io/cypress/issues/210)
- We now no longer abort XHR's which have their `.abort()` method called but are already complete. This fixes an edge case where complete XHR's were having their `disposer` function called in frameworks like `rxJS` which lead to Cypress accidentally re-aborting the XHR's after they were complete. Fixes [#761](https://togithub.com/cypress-io/cypress/issues/761)
- Fixed issues involving XHRs displaying as 'aborted' in the Cypress Command Log when they were not actually aborted. Fixes [#1652](https://togithub.com/cypress-io/cypress/issues/1652)
- We no longer abort XHR request during the page's `unload` event and allow the browser to handle natively calling abort. Fixes [#2968](https://togithub.com/cypress-io/cypress/issues/2968)
- Fixed an issue where Cypress's `devDependencies` were being included in the Windows binary. Fixes [#2896](https://togithub.com/cypress-io/cypress/issues/2896)
- Fixed issue where XHR's `onreadystatechange` was not receiving the proper event arguments. Fixes [#2925](https://togithub.com/cypress-io/cypress/issues/2925)
- We now properly strip leading paths of files on uncaught errors from Windows OS. Fixes [#2936](https://togithub.com/cypress-io/cypress/issues/2936)
**Misc:**
- Removed the word 'already' from the Cypress install message in order to be less confusing. Adresses [#2754](https://togithub.com/cypress-io/cypress/issues/2754)
- Fixed incomplete type definitions for [`cy.request`](https://on.cypress.io/request). Fixes [#2305](https://togithub.com/cypress-io/cypress/issues/2305)
**Dependency Updates**
- Upgraded `commit-info` from `2.0.0` to `2.1.1`. Fixes [#2848](https://togithub.com/cypress-io/cypress/issues/2848).
- Upgraded `lodash` from `4.17.10` to `4.17.11`. Fixes [#2929](https://togithub.com/cypress-io/cypress/issues/2929).
### [`v3.1.3`](https://togithub.com/cypress-io/cypress/releases/v3.1.3)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.2...v3.1.3)
_Released 12/03/2018_
**Bugfixes:**
- Fixed regression introduced in [3.1.1](https://on.cypress.io/changelog#3.1.1) with `requestAnimationFrame` that caused some animations not to run. Fixes [#2725](https://togithub.com/cypress-io/cypress/issues/2725).
- Fixed regression introduced in [3.1.2](https://on.cypress.io/changelog#3.1.2) that caused DOM elements passed to [`cy.wrap()`](https://on.cypress.io/wrap) to no longer yield the proper jQuery array instance. Fixes [#2820](https://togithub.com/cypress-io/cypress/issues/2820).
- Fixed regression causing invocations of [cy.clock()](https://on.cypress.io/clock) to error on subsequent tests. Fixes [#2850](https://togithub.com/cypress-io/cypress/issues/2850).
- Fixed issue where a fix included in [3.1.2](https://on.cypress.io/changelog#3.1.2) did not pass the `windowsHide` argument to the proper options. Fixes [#2667](https://togithub.com/cypress-io/cypress/issues/2667) and [#2809](https://togithub.com/cypress-io/cypress/issues/2809).
- Passing [`.check({ force: true })`](https://on.cypress.io/check) no longer requires the checkbox or radio to be visible. Fixes [#1376](https://togithub.com/cypress-io/cypress/issues/1376).
**Misc**
- Updated types to support promises as arguments within [`cy.wrap`](https://on.cypress.io/wrap). Fixes [#2807](https://togithub.com/cypress-io/cypress/pull/2807).
- We now expose all jQuery methods and values onto "`Cypress.$`" $. Fixes [#2830](https://togithub.com/cypress-io/cypress/issues/2830).
- [`cy.wait()`](https://on.cypress.io/wait) now accepts a separate timeout option for `requestTimeout` and `responseTimeout`. Fixes [#2446](https://togithub.com/cypress-io/cypress/issues/2446).
**Dependency Updates**
- Upgraded nodemon from `^1.8.1` to `^1.8.7`. Fixes [#2864](https://togithub.com/cypress-io/cypress/pull/2864).
- Upgraded request from `^2.27.0` and `^2.28.0` to `^4.0.0`, Fixes [#2455](https://togithub.com/cypress-io/cypress/issues/2455).
**Documentation Changes:**
- Added `requestTimeout` and `responseTimeout` options to [`cy.wait()`](https://on.cypress.io/wait)
- Added 'History' table to [`cy.wait()`](https://on.cypress.io/wait)
- Added 'Alias' for assertions that are aliases of each other to [`Assertions`](https://on.cypress.io/assertions)
### [`v3.1.2`](https://togithub.com/cypress-io/cypress/releases/v3.1.2)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.1...v3.1.2)
_Released 11/18/2018_
**Bugfixes:**
- Fixed a regression caused in `3.1.1` where we attempted to set a property on an invalid cookie sent from a server. Fixes [#2724](https://togithub.com/cypress-io/cypress/issues/2724).
- Fixed Cypress not correctly aborting long running connections (such as server sent events) on proxied requests. Fixes [#2612](https://togithub.com/cypress-io/cypress/issues/2612).
- Fixed bug where tests were failing due to assertions causing Cypress to accidentally iterate through cross origin iframes. If you were seeing "random" cross origin errors, this likely fixes those issues. Fixes [#2784](https://togithub.com/cypress-io/cypress/issues/2784).
- Fixed incorrectly setting `charCode` and `keyCode` when using [.type()](https://on.cypress.io/type) on a few different special characters such as `{`. Fixes [#2105](https://togithub.com/cypress-io/cypress/issues/2105).
- Fixed another regression in `3.1.1` where passing `undefined` to a `setTimeout` caused Cypress to error. Fixes [#2719](https://togithub.com/cypress-io/cypress/issues/2719).
- Fixed a bug in node core where Cypress would not show up in `Windows` for users on `node >= 11`. Fixes [#2667](https://togithub.com/cypress-io/cypress/issues/2667).
- Fixed a bug with trashing assets in linux that caused recursive `.Trash` files to show up. We now have opted to actually `rm -rf` the files in linux because trashing is too inconsistent between linux distros. Fixes [#2742](https://togithub.com/cypress-io/cypress/issues/2742).
**Misc**
- Added type definitions for `Cypress.moment()`. Fixes [#2746](https://togithub.com/cypress-io/cypress/issues/2746).
- We now display better error messages in the CLI when runs exceed billing limits. Fixes [#1689](https://togithub.com/cypress-io/cypress/issues/1689).
**Dependency Updates**
- Removed `progress` [#2733](https://togithub.com/cypress-io/cypress/issues/2733).
### [`v3.1.1`](https://togithub.com/cypress-io/cypress/releases/v3.1.1)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.0...v3.1.1)
_Released 11/2/2018_
**Known regressions in this release ⚠️**
- [#2742](https://togithub.com/cypress-io/cypress/issues/2742) infinite `.Trash-0` folder on Ubuntu 16
- [#2724](https://togithub.com/cypress-io/cypress/issues/2724) setting HTTPS cookies in certain situations
**Features:**
- You can now pass a `flag` option to [`cy.writeFile()`](https://on.cypress.io/writefile). The [following flags](https://nodejs.org/api/fs.html#fs_file_system_flags) are available. Fixes [#1249](https://togithub.com/cypress-io/cypress/issues/1249).
- There is a new [`CYPRESS_DOWNLOAD_MIRROR`](https://on.cypress.io/installing-cypress#Mirroring) environment variable for installing Cypress at a mirror url. Fixes [#2609](https://togithub.com/cypress-io/cypress/pull/2609).
- The [Module API](https://on.cypress.io/module-api) now returns the `runUrl` from `cypress.run()`. Fixes [#2596](https://togithub.com/cypress-io/cypress/issues/2596).
- Specs now properly display as focused when navigating through specs via the keyboard. Fixes [#2273](https://togithub.com/cypress-io/cypress/pull/2273).
**Bugfixes:**
- Fixed a bug where Cypress would error when a secure cookie flag was set and then expired from an `https` url without the subsequent secure flag. Due to the way Cypress was constructing the url, this would fail to actually remove the cookie. Fixes [#1264](https://togithub.com/cypress-io/cypress/issues/1264), [#1321](https://togithub.com/cypress-io/cypress/issues/1321), [#1799](https://togithub.com/cypress-io/cypress/issues/1799).
- We now truncate filenames for screenshots to not exceed 255 characters in length. Previously there were cases where the screenshot filename would exceed 255 characters and error. Fixes [#2403](https://togithub.com/cypress-io/cypress/issues/2403) and [#2665](https://togithub.com/cypress-io/cypress/issues/2665).
- Fixed issue when using [`cy.writeFile()`](https://on.cypress.io/writefile) and passing an object to a `.json` file. The object is now correctly written to the JSON file instead of a string. Fixes [#2373](https://togithub.com/cypress-io/cypress/pull/2373).
- We updated how we handle [`trashAssetsBeforeRuns`](https://on.cypress.io/configuration#Screenshots) behavior. We now trash the contents of the [`screenshotsFolder`](https://on.cypress.io/configuration#Folders-Files) and [`videosFolder`](https://on.cypress.io/configuration#Folders-Files) directories instead of trashing the directories themselves. This helps maintain any file access permissions for the directories. Fixes [#1943](https://togithub.com/cypress-io/cypress/issues/1943) and [#2600](https://togithub.com/cypress-io/cypress/issues/2600).
- Fixed bug where mocked Dates using [`cy.clock()`](https://on.cypress.io/clock) would not be an instance of `Date`. Fixes [#2570](https://togithub.com/cypress-io/cypress/issues/2570).
- Directories within specs whose names contain `.` are now correctly read as directories instead of spec files within the Test Runner. Fixes [#2423](https://togithub.com/cypress-io/cypress/issues/2423).
- Cypress no longer automatically takes screenshots of skipped tests. Fixes [#2368](https://togithub.com/cypress-io/cypress/issues/2368).
- Fixed an issue where returning/resolving `undefined` from a [`cy.task()`](https://on.cypress.io/task) handler resulted in an incorrect runtime error. Fixes [#2553](https://togithub.com/cypress-io/cypress/issues/2553).
- Update [`modifyObstructiveCode`](https://on.cypress.io/configuration#modifyObstructiveCode) to account for framebusting techniques that use `window.frameElement`, so that Applications using this technique will run properly in Cypress. Fixes [#2582](https://togithub.com/cypress-io/cypress/issues/2582).
- Fixed bug where only the first DOM element of an array of DOM elements would be blacked out after being passed as argument to `blackout` within [`cy.screenshot()`](https://on.cypress.io/screenshot). Fixes [#2508](https://togithub.com/cypress-io/cypress/issues/2508).
- We fixed an issue involving timers after running [`cy.screenshot()`](https://on.cypress.io/screenshot). Fixes [#2432](https://togithub.com/cypress-io/cypress/issues/2432).
- The Test Runner now retries node-originated errors from our internal API requests. Fixes [#2341](https://togithub.com/cypress-io/cypress/issues/2341)
- Fixed issue with multiple `readyStateChanges` with the same `readyState`. Fixes [#1150](https://togithub.com/cypress-io/cypress/issues/1150).
- Fixed Type error being thrown for users using TypeScript 3. Fixes [#2363](https://togithub.com/cypress-io/cypress/issues/2363).
**Misc**
- We are now collecting more environment variables from runs when run in Semaphore, GitLab, Bitbucket, Team Foundation Server, Codeship, and Shippable. Fixes [#2460](https://togithub.com/cypress-io/cypress/issues/2460), [#2358](https://togithub.com/cypress-io/cypress/issues/2358), [#2343](https://togithub.com/cypress-io/cypress/issues/2343), and [#2453](https://togithub.com/cypress-io/cypress/issues/2453).
- We now display better error messages in the CLI when runs exceed billing limits. Fixes [#1689](https://togithub.com/cypress-io/cypress/issues/1689).
- The Test Runner's search now resets when switching between projects. Fixes [#2512](https://togithub.com/cypress-io/cypress/issues/2512).
- Fixed internal Cypress tests. Fixes [#2606](https://togithub.com/cypress-io/cypress/issues/2606).
- Replaced use of `new Buffer` with `Buffer.from`. Fixes [#2626](https://togithub.com/cypress-io/cypress/issues/2626).
- Whitelisted `autoScrollingEnabled` to be saved in `state.json`. Fixes [#2476](https://togithub.com/cypress-io/cypress/issues/2476).
- Fixed internal test error `beforeSpecRun is not a function`. Fixes [#2401](https://togithub.com/cypress-io/cypress/issues/2401).
- Switched our internal tests to use CircleCI workspaces. Fixes [#2398](https://togithub.com/cypress-io/cypress/issues/2398).
- Update TypeScript definition for [`cy.screenshot()`](https://on.cypress.io/screenshot) to include screenshot specific options. Fixes [#2654](https://togithub.com/cypress-io/cypress/issues/2654).
- Urls printed within the CLI will now display as the color blue. Fixes [#2493](https://togithub.com/cypress-io/cypress/issues/2493).
- We began bulk converting some of our codebase from CoffeeScript to JavaScript. Fixes [#2686](https://togithub.com/cypress-io/cypress/issues/2686) and [#2687](https://togithub.com/cypress-io/cypress/issues/2687).
- We updated some of our internal ESLint rules to be more strict and also to help with CoffeeScript to JavaScript conversions. Fixes [#2688](https://togithub.com/cypress-io/cypress/issues/2688).
**Dependency Updates**
- Upgraded common-tags from `^1.4.0` to `^1.8.0` [#2415](https://togithub.com/cypress-io/cypress/pull/2415)
- Upgraded [@cypress/browserify-preprocessor](https://togithub.com/cypress/browserify-preprocessor) from `1.1.0` to `1.1.1` [#2513](https://togithub.com/cypress-io/cypress/issues/2513)
- Upgraded lolex from `^1.5.2` to `^3.0.0` [#2570](https://togithub.com/cypress-io/cypress/issues/2570)
- Upgraded [@types/jquery](https://togithub.com/types/jquery) from `3.2.16` to `3.3.6` [#2363](https://togithub.com/cypress-io/cypress/issues/2363)
- Upgraded zunder from `5.6.5` to `6.1.1` [#2541](https://togithub.com/cypress-io/cypress/issues/2541)
**Documentation Changes:**
- Added `flag` option to [`cy.writeFile()` doc](https://on.cypress.io/writefile).
- Added `runUrl` to returned run in [Module API doc](https://on.cypress.io/module-api).
- Documented new `CYPRESS_DOWNLOAD_MIRROR` flag and rewrote advanced install instructions to be clearer in [Installing Cypress doc](https://on.cypress.io/installing-cypress#Advanced).
Renovate configuration
:date: Schedule: "after 10pm,before 6am" 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 if you modify the PR title to begin with "rebase!".
: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 has been generated by Renovate Bot. View repository job log here.
This PR contains the following updates:
3.1.0
->3.3.1
Release Notes
cypress-io/cypress
### [`v3.3.0`](https://togithub.com/cypress-io/cypress/releases/v3.3.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.2.0...v3.3.0) _Released 5/17/2019_ **Features:** - Cypress now automatically reads from your system's `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables and proxies traffic accordingly through Cypress based on these values. This includes network traffic within your application under test, when downloading Cypress, and when accessing 'Runs' within the Test Runner. Please read our new [Proxy Configuration](https://on.cypress.io/proxy-configuration) doc to understand more about proxy configuration in Cypress. Fixes [#672](https://togithub.com/cypress-io/cypress/issues/672), [#733](https://togithub.com/cypress-io/cypress/issues/733), [#939](https://togithub.com/cypress-io/cypress/issues/939), [#1039](https://togithub.com/cypress-io/cypress/issues/1039), [#1459](https://togithub.com/cypress-io/cypress/issues/1459), [#1469](https://togithub.com/cypress-io/cypress/issues/1469), [#1470](https://togithub.com/cypress-io/cypress/issues/1470), [#1541](https://togithub.com/cypress-io/cypress/issues/1541), [#1608](https://togithub.com/cypress-io/cypress/issues/1608), [#2295](https://togithub.com/cypress-io/cypress/issues/2295), [#3855](https://togithub.com/cypress-io/cypress/issues/3855), [#3865](https://togithub.com/cypress-io/cypress/issues/3865), [#1401](https://togithub.com/cypress-io/cypress/issues/1401) and [#3857](https://togithub.com/cypress-io/cypress/issues/3857). - Your project's current proxy settings now display in the [Settings of the Test Runner](https://on.cypress.io/proxy-configuration#View-proxy-settings-in-Cypress). Addresses [#3856](https://togithub.com/cypress-io/cypress/issues/3856). - Support for `have.focus`, `not.have.focus`, `be.focused` and `not.be.focused` [assertions](https://on.cypress.io/assertions) have been added. Addresses [#97](https://togithub.com/cypress-io/cypress/issues/97). - We now offer a separate 32bit and 64bit build for Windows. Addresses [#716](https://togithub.com/cypress-io/cypress/issues/716), [#787](https://togithub.com/cypress-io/cypress/issues/787), [#2095](https://togithub.com/cypress-io/cypress/issues/2095), [#706](https://togithub.com/cypress-io/cypress/issues/706), [#3706](https://togithub.com/cypress-io/cypress/issues/3706), and [#4016](https://togithub.com/cypress-io/cypress/issues/4016). - Requests that go through [`cy.visit()`](https://on.cypress.io/visit) or [`cy.request()`](https://on.cypress.io/request) are now automatically retried under the hood when the request fails. This more closely reflects Chrome's default behavior on requests. Addresses [#4013](https://togithub.com/cypress-io/cypress/issues/4013), [#898](https://togithub.com/cypress-io/cypress/issues/898) and [#1013](https://togithub.com/cypress-io/cypress/issues/1013). - [`cy.visit()`](https://on.cypress.io/visit) and [`cy.request()`](https://on.cypress.io/request) now support new options `retryOnStatusCodeFailure` and `retryOnNetworkFailure` to allow changing Cypress's automatic request retry on status codes and network errors. Addresses [#4013](https://togithub.com/cypress-io/cypress/issues/4013), [#898](https://togithub.com/cypress-io/cypress/issues/898) and [#1013](https://togithub.com/cypress-io/cypress/issues/1013). - [`.type()`](https://on.cypress.io/type) now supports the special character sequences `{insert}`, `{pageup}`, and `{pagedown}`. Addresses [#3845](https://togithub.com/cypress-io/cypress/issues/3845). - We now indicate which XHRs match which alias in the Command Log on [`.wait()`](https://on.cypress.io/wait) when they match an alias multiple times. Addresses [#477](https://togithub.com/cypress-io/cypress/issues/477). - The console log when clicking on the [`cy.visit()`](https://on.cypress.io/visit) command now displays its resolved `options` arguments. Addresses [#3721](https://togithub.com/cypress-io/cypress/issues/3721). - There's a new 'canceled' XHR status shown on the Command Log to indicate the difference between calling `xhr.abort()` and the browser canceling the request due to page navigation. Addresses [#3973](https://togithub.com/cypress-io/cypress/issues/3973). - The Electron browser now runs Chrome Version 61. Addresses [#4000](https://togithub.com/cypress-io/cypress/issues/4000). - Running Cypress via `cypress run` now supports scripts of `type="module"`. Fixes [#3696](https://togithub.com/cypress-io/cypress/issues/3696). - Exposed [`Cypress.isCy()`](https://on.cypress.io/iscy) method to check if a value is a valid instance of `cy` or a `cy` chainable. Fixes [#3822](https://togithub.com/cypress-io/cypress/issues/3822). - There is a new "Download Chromium" menu item in the "Help" menu of the Test Runner links to Cypress's [Chromium Download Tool](https://on.cypress.io/chromium-downloads). Addresses [#3977](https://togithub.com/cypress-io/cypress/issues/3977) **Bugfixes:** - Fixed a regression introduced in [3.2.0](https://on.cypress.io/changelog#3-2-0) that caused an error to throw when visiting domains with certain public suffixes. Fixes [#3717](https://togithub.com/cypress-io/cypress/issues/3717). - When running Cypress with `NODE_OPTIONS` environment variables set, Cypress no longer issues an incorrect 0 exit code. [#1676](https://togithub.com/cypress-io/cypress/issues/1676) - Fixed a regression introduced in [3.2.0](https://on.cypress.io/changelog#3-2-0) that caused [`.its()`](https://on.cypress.io/its) to no longer retry when it yields `undefined`. [#3837](https://togithub.com/cypress-io/cypress/issues/3837) - Fixed a regression introduced in [3.2.0](https://on.cypress.io/changelog#3-2-0) that caused [`cy.fixture()`](https://on.cypress.io/fixture) to throw a `EISDIR` error if a directory had the same name as a file within that same directory. Fixes [#3739](https://togithub.com/cypress-io/cypress/issues/3739). - `user-agent` headers sent as arguments to [`cy.request()`](https://on.cypress.io/request) and [`cy.visit()`](https://on.cypress.io/visit) are now properly sent. Fixes [#3873](https://togithub.com/cypress-io/cypress/issues/3873) and [#3719](https://togithub.com/cypress-io/cypress/issues/3719). - When a request is proxied through Cypress and there is a network error, we no longer send an HTML response with a 500 status code. We now kill the browser-facing socket and let the network error be handled by the application under test. Fixes [#4101](https://togithub.com/cypress-io/cypress/issues/4101), [#4231](https://togithub.com/cypress-io/cypress/issues/4231), [#1036](https://togithub.com/cypress-io/cypress/issues/1036), [#4231](https://togithub.com/cypress-io/cypress/issues/4231), and [#1398](https://togithub.com/cypress-io/cypress/issues/1398). - We changed Cypress's implementation to no longer rely on internal XHR events when the browser navigates. This fixes a a bug in Chrome 71+ that could cause XHRs to pend forever. Fixes [#3973](https://togithub.com/cypress-io/cypress/issues/3973) and [#4130](https://togithub.com/cypress-io/cypress/issues/4130) - We greatly improved the speed of proxied requests through our network layer. Fixes [#3192](https://togithub.com/cypress-io/cypress/issues/3192) and [#1469](https://togithub.com/cypress-io/cypress/issues/1469). - If an error occurs during `cypress verify`, we now kill the verification process after 10 seconds and print the error message. This should prevent some situations where Cypress would hang during installation or verification and never exit. Fixes [#819](https://togithub.com/cypress-io/cypress/issues/819). - Cypress automatically retries `cypress verify` and `cypress run` commands by starting its own Xvfb server on Linux if the first attempt fails due to possible `DISPLAY` misconfiguration. Addresses [#4034](https://togithub.com/cypress-io/cypress/issues/4034). - Cypress now properly handles typing JavaScript object prototype methods (like `hasOwnProperty`) into [.type()](https://on.cypress.io/type). Fixes [#3423](https://togithub.com/cypress-io/cypress/issues/3423). - We now set the `form` option to `true` if the `Content-Type` header equals `application/x-www-form-urlencoded` and `json` is not already set by a user. This fixes a situation where Cypress would try to parse the `body` as a string, resulting in a confusing error message. Fixes [#2923](https://togithub.com/cypress-io/cypress/issues/2923). - [`cy.contains()`](https://on.cypress.io/contains) now correctly handles comma delimited arguments passed to the selector argument. Fixes [#2407](https://togithub.com/cypress-io/cypress/issues/2407). - Passing a browser path containing spaces now works properly when passed to the `--browser` argument. Fixes [#3979](https://togithub.com/cypress-io/cypress/issues/3979) - Fixed display of tooltips when selecting elements from the Selector Playground so that they display at the correct coordinates when scrolling. Fixes [#1351](https://togithub.com/cypress-io/cypress/issues/1351). - The lists of spec files now display at the correct indentation level when they are nested more than 5 directories deep. Fixes [#3652](https://togithub.com/cypress-io/cypress/issues/3652). - Cypress now properly parses environment variables with empty values. Fixes [#3742](https://togithub.com/cypress-io/cypress/issues/3742). - Assertions running outside of a test are now properly handled in Cypress instead of throwing internal errors. Fixes [#3926](https://togithub.com/cypress-io/cypress/issues/3926). - [`Cypress.log()`](https://on.cypress.io/cypress-log) now throws an error when not properly passed an object as its argument. Addresses [#3658](https://togithub.com/cypress-io/cypress/issues/3658). - [`Cypress.log()`](https://on.cypress.io/cypress-log) no longer throws when called before any other Cypress commands. Fixes [#3658](https://togithub.com/cypress-io/cypress/issues/3658). **Misc:** - We now better support capturing environment variables within Azure DevOps. Addresses [#3657](https://togithub.com/cypress-io/cypress/issues/3657). - Cypress now only scans for spec changes when the watcher sees changes, rather than polling to scan. Addresses [#3069](https://togithub.com/cypress-io/cypress/issues/3069). - The ability to open the context menu to see "Inspect Element" has been reenabled in the Electron browser. Addresses [#4002](https://togithub.com/cypress-io/cypress/issues/4002). - We no longer package non-Windows `ffmpeg` builds with Windows builds, resulting in a 35-40% reduction in zipped size and a 36-43% reduction in unzipped size of download. Addresses [#3888](https://togithub.com/cypress-io/cypress/issues/3888). - The warning messages when going over test recording limits have been updated to correctly display 'monthly tests' and 'private tests' where necessary. Addresses [#4024](https://togithub.com/cypress-io/cypress/issues/4024). - When an HTTP request is received by the proxy layer, by default, we send it with a `Connection: keep-alive` header so that the connection will be reused if possible. Addresses [#3857](https://togithub.com/cypress-io/cypress/issues/3857). - Improved accessibility of Test Runner for screen readers. Addresses [#3850](https://togithub.com/cypress-io/cypress/issues/3850). - Cypress type definition now allow a `timeout` option in [`cy.hash()`](https://on.cypress.io/hash). Fixes [#3844](https://togithub.com/cypress-io/cypress/issues/3844). - Fixed type definition for `match` assertion so that it now only accepts `RegExp` type arguments. Fixes [#2578](https://togithub.com/cypress-io/cypress/issues/2578). - The [`.trigger()`](https://on.cypress.io/trigger) type definition now expects its `options` to be `ObjectLike`. Addressed in [#3809](https://togithub.com/cypress-io/cypress/pull/3809). - The [`cy.clock()`](https://on.cypress.io/clock) type definition now allows for type `Date`. Fixed in [#4106](https://togithub.com/cypress-io/cypress/pull/4106). - Added type definition for undocumented `Cypress.LocalStorage.clear` method. Fixes [#4070](https://togithub.com/cypress-io/cypress/issues/4070). - Added type definition for [`Cypress.isCy()`](https://on.cypress.io/iscy) method. Fixes [#3822](https://togithub.com/cypress-io/cypress/issues/3822). - Added missing type definitions for some [`cy.visit()`](https://on.cypress.io/visit) options. Fixes [#3989](https://togithub.com/cypress-io/cypress/issues/3989). - The spinner animation should more smoothly spin when a command is pending in the Test Runner. Addressed in [#4005](https://togithub.com/cypress-io/cypress/pull/4005). **Documentation Changes:** - New [Proxy Configuration](https://on.cypress.io/proxy-configuration) doc. Addressed in [#1486](https://togithub.com/cypress-io/cypress-documentation/pull/1486). - Added `{insert}`, `{pageup}`, and `{pagedown}` as supported special character sequences to [`.type()`](https://on.cypress.io/type#Arguments). Addressed in [#1567](https://togithub.com/cypress-io/cypress-documentation/pull/1567). - Added newly supported `focus` assertion to [Assertions](https://on.cypress.io/assertions) doc. Addresses [#1372](https://togithub.com/cypress-io/cypress-documentation/pull/1372). - Added new options `retryOnStatusCodeFailure` and `retryOnNetworkFailure` to [`cy.visit()`](https://on.cypress.io/visit) and [`cy.request()`](https://on.cypress.io/request). - Updated [install instructions for Windows](https://on.cypress.io/installing-cypress#Download-URLs) on how to target 64bit and 32bit infrastructures. Addressed in [#1568](https://togithub.com/cypress-io/cypress-documentation/issues/1568). - Updated [`.its()`](https://on.cypress.io/its) and [`.invoke()`](https://on.cypress.io/invoke) docs to better explain how default assertions are handled. Addresses [#1643](https://togithub.com/cypress-io/cypress-documentation/issues/1643). - Updated our [Roadmap](https://on.cypress.io/roadmap) to more closely reflect the work we are doing. Addressed in [#1567](https://togithub.com/cypress-io/cypress-documentation/pull/1639). - Added a section about how to request our new [Open Source Plan](https://on.cypress.io/dashboard-service#Open-Source-Plan) in the Dashboard Service doc. Addressed in [#1567](https://togithub.com/cypress-io/cypress-documentation/pull/1584). **Dependency Updates** - Upgraded `commit-info` from `2.1.2` to `2.1.2`. Addressed in [#4045](https://togithub.com/cypress-io/cypress/pull/4045) - Upgraded `data-uri-to-buffer` from `0.0.4` to `1.2.0`. Addresses [#4152](https://togithub.com/cypress-io/cypress/issues/4152). - Upgraded `electron` from `1.8.2` to `2.0.18`. Addresses [#4000](https://togithub.com/cypress-io/cypress/issues/4000). - Upgraded `electron-packager` from `9.1.0` to `13.1.1`. Addresses [#4155](https://togithub.com/cypress-io/cypress/issues/4155). - Upgraded `express-handlebars` from `3.0.0` to `3.0.2`. Addressed in [#4086](https://togithub.com/cypress-io/cypress/pull/4086). - Upgraded `find-process` from `1.2.1` to `1.4.1`. Addressed in [#4087](https://togithub.com/cypress-io/cypress/pull/4087). - Upgraded `getos` from `2.8.4` to `3.1.1`. Addressed in [#4222](https://togithub.com/cypress-io/cypress/pull/4222). - Upgraded `http-status-codes` from `1.3.0` to `1.3.2`. Addressed in [#3949](https://togithub.com/cypress-io/cypress/pull/3949). - Upgraded `jimp` from `0.6.0` to `0.6.4`. Addressed in [#4097](https://togithub.com/cypress-io/cypress/pull/4097). - Removed `method-override`. Addressed in [#4209](https://togithub.com/cypress-io/cypress/pull/4209). - Upgraded `node` from `8.2.1` to `8.9.3`. Addressed in [#4001](https://togithub.com/cypress-io/cypress/pull/4001). - Downgraded `parse-domain` from 2.1.7 to 2.0.0 to avoid a regression released in `parse-domain`. Addresses [#3717](https://togithub.com/cypress-io/cypress/issues/3717). - Upgraded `pluralize` from `3.1.0` to `7.0.0`. Addressed in [#4205](https://togithub.com/cypress-io/cypress/pull/4205) and [#4206](https://togithub.com/cypress-io/cypress/pull/4206). - Upgraded `semver` from `5.6.0` to `5.7.0`. Addressed in [#4112](https://togithub.com/cypress-io/cypress/pull/4112). - Upgraded `send` from `0.16.2` to `0.17.0`. Addressed in [#4134](https://togithub.com/cypress-io/cypress/pull/4134). - Upgraded `supports-color` from `5.5.0` to `6.1.0`. Addressed in [#4150](https://togithub.com/cypress-io/cypress/pull/4150). - Removed `tar-fs`. Addressed in [#4148](https://togithub.com/cypress-io/cypress/pull/4148). - Upgraded `term-size` from `1.2.0` to `2.0.0`. Addressed in [#4148](https://togithub.com/cypress-io/cypress/pull/4148). - Upgraded `tmp` from `0.0.33` to `0.1.0`. Addressed in [#4111](https://togithub.com/cypress-io/cypress/pull/4111). - Upgraded `trash` from `4.3.0` to `5.2.0`. Addressed in [#4140](https://togithub.com/cypress-io/cypress/pull/4140). - Upgraded `url-parse` from `1.4.4` to `1.4.7`. Addressed in [#4110](https://togithub.com/cypress-io/cypress/pull/4110). - Upgraded `widest-line` from `2.0.1` to `3.1.0`. Addressed in [#4139](https://togithub.com/cypress-io/cypress/pull/4139). - We updated and removed some dependencies used for development. ### [`v3.2.0`](https://togithub.com/cypress-io/cypress/releases/v3.2.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v3.1.5...v3.2.0) _Released 3/15/2019_ **Features:** - [`cy.visit()`](https://on.cypress.io/visit) has been expanded to allow options `url`, `method`, `body`, and `headers`. This allows [`cy.visit()`](https://on.cypress.io/visit) to be called with a `POST` method or with headers like `Accept-Language` or `Authorization`. Fixes [#1500](https://togithub.com/cypress-io/cypress/issues/1500), [#1904](https://togithub.com/cypress-io/cypress/issues/1904) and [#908](https://togithub.com/cypress-io/cypress/issues/908). - [`cy.request()`](https://on.cypress.io/request) now allows any valid HTTP `method` to be used including `TRACE`, `COPY`, `LOCK`, `MKCOL`, `MOVE`, `PURGE`, `PROPFIND`, `PROPPATCH`, `UNLOCK`, `REPORT`, `MKACTIVITY`, `CHECKOUT`, `MERGE`, `M-SEARCH`, `NOTIFY`, `SUBSCRIBE`, `UNSUBSCRIBE`, `SEARCH`, and `CONNECT`. Addresses [#1302](https://togithub.com/cypress-io/cypress/issues/1302) - The [`--browser` argument](https://on.cypress.io/command-line#cypress-run-browser-lt-browser-name-or-path-gt) of the [Command Line](https://on.cypress.io/command-line) and the [`browser` argument](https://on.cypress.io/module-api#cypress-run) of the [Module API](https://on.cypress.io/module-api) have been updated to allow passing a `Renovate configuration
:date: Schedule: "after 10pm,before 6am" 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 if you modify the PR title to begin with "
rebase!
".:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. View repository job log here.