cypress-io/cypress
### [`v9.3.1`](https://togithub.com/cypress-io/cypress/releases/v9.3.1)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.3.0...v9.3.1)
*Released 1/19/2022*
**Bugfixes:**
- Fixed an issue where the bin file was released with windows line breaks. Fixes
[#19747](https://togithub.com/cypress-io/cypress/issues/19747).
### [`v9.3.0`](https://togithub.com/cypress-io/cypress/releases/v9.3.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.2.1...v9.3.0)
*Released 1/18/2022*
**Features:**
- Added a new Cypress command, called
[`.selectFile()`](https://docs.cypress.io/api/commands/selectfile), to select a file or files in an
HTML5 input element or simulate dragging a file or files into the browser. The
API is similar to `cypress-file-upload` and we have provided a
[migration guide](https://docs.cypress.io/guides/references/migration-guide#Migrating-from-cypress-file-upload-to-selectFile)
for previous users of that plugin. For more details, see
[our blog post](https://cypress.io/blog/2022/01/18/uploading-files-with-selectfile/).
Fixes [#19524](https://togithub.com/cypress-io/cypress/issues/19524) and
[#170](https://togithub.com/cypress-io/cypress/issues/170).
- Exposed the `Buffer` polyfill, as [`Cypress.Buffer`](https://docs.cypress.io/api/utilities/buffer),
to enable working with binary data. Addressed in
[#19524](https://togithub.com/cypress-io/cypress/issues/19524).
- Added the `CYPRESS_DOWNLOAD_PATH_TEMPLATE` environment variable which can be
set to a string template for building the download URL for the Cypress binary.
This environment variable is useful for users who are downloading the Cypress
binary from a proxy that is not one-to-one with the Cypress's default download
url. More information can be found in the
[Install Binary](https://docs.cypress.io/guides/getting-started/installing-cypress#Install-binary)
documentation. Fixes
[#15697](https://togithub.com/cypress-io/cypress/issues/15697).
**Bugfixes:**
- Fixed an issue where the `--spec` CLI parameter was not working properly when
passing multiple glob patterns that are separated by commas. Fixes
[#16102](https://togithub.com/cypress-io/cypress/issues/16102).
- Fixed an issue with how the `CYPRESS_VERIFY_TIMEOUT` environment variable was
read so it can set in a project's `package.json` or it's `.npmrc`. Fixes
[#19559](https://togithub.com/cypress-io/cypress/issues/19559).
**Dependency Updates:**
- Upgraded `graceful-fs` from `4.2.0` to `4.2.9`. This upgrade resolves issues
observed with using graceful-fs v4.2.0 with resolve v1.21+. Addressed in
[#19676](https://togithub.com/cypress-io/cypress/issues/19676) and resolves
[#19610](https://togithub.com/cypress-io/cypress/pull/19610).
- **NOTE:** This upgrade to `graceful-fs` breaks Cypress's compatibility with
Yarn 2. We have observed errors with Yarn 2.4.2 with `graceful-fs` 4.2.9.
Before this change, Cypress had minimal Yarn 2 support (see
[#6377](https://togithub.com/cypress-io/cypress/issues/6377)). Between Yarn 3
fixing multiple bugs and the migration path from Yarn 2 to Yarn 3 being
minimal, we felt the best step forward was to support and recommend Yarn 3
over Yarn 2.
- Upgraded `electron` from `15.2.0` to `15.3.4`. Addressed in
[#19351](https://togithub.com/cypress-io/cypress/issues/19351).
### [`v9.2.1`](https://togithub.com/cypress-io/cypress/releases/v9.2.1)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.2.0...v9.2.1)
*Released 1/10/2022*
**Bugfixes:**
- Fixed a regression in [9.2.0](https://docs.cypress.io/guides/references/changelog#9-2-0) to keep
Cypress open after each spec finishes when the `--headed --no-exit` flags are
passed to `cypress run`. Fixes
[#19485](https://togithub.com/cypress-io/cypress/issues/19485).
- Improve heuristic for verifying when the `--openssl-legacy-provider` option
should be passed to the plugins' child process when the system Node version is
v17+. This prevents Cypress from crashing when a user has Node 17 installed
which was built with OpenSSL v1. Fixes
[#19320](https://togithub.com/cypress-io/cypress/issues/19320).
- Correctly cast the `CYPRESS_VERIFY_TIMEOUT` environment variable as a number
so Cypress will no longer throw
`TypeError: Expected the timeout option to be a non-negative integer`. Fixes
[#19476](https://togithub.com/cypress-io/cypress/issues/19476).
**Dependency Updates:**
- Update pinned resolution of `cli-table3` from `~0.6.0` to `~0.6.1` to avoid
problems with the bug introduced in the
[colors.js v1.4.44-liberty-2 release](https://togithub.com/Marak/colors.js/issues/285).
Addresses [#19624](https://togithub.com/cypress-io/cypress/issues/19624).
### [`v9.2.0`](https://togithub.com/cypress-io/cypress/releases/v9.2.0)
[Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.1.1...v9.2.0)
*Released 12/20/2021*
**Features:**
- Cypress will throw an error when a user attempts to update a configuration
value at run-time using either the Test Configuration or using
`Cypress.config()` that is a
[readonly option](https://docs.cypress.io/guides/references/configuration#Test-Configuration).
Addresses [#6407](https://togithub.com/cypress-io/cypress/issues/6407) and
[#19001](https://togithub.com/cypress-io/cypress/issues/19001).
- A `timeout` option has been added to the `cy.writeFile()` command, with a
default value of `defaultCommandTimeout`. Addresses
[#3350](https://togithub.com/cypress-io/cypress/issues/3350).
- The default `maxHttpBufferSize` for the internal socket server has been
increased to
[Node's maximum Buffer size](https://nodejs.org/api/buffer.html#bufferconstantsmax_length)
(size varies by OS) to allow large file writes with `cy.writeFile()`.
Addresses [#19140](https://togithub.com/cypress-io/cypress/issues/19140).
- Add `CYPRESS_VERIFY_TIMEOUT` environment variable to override the timeout
duration of the `verify` command. Addresses
[#18290](https://togithub.com/cypress-io/cypress/issues/18290).
**Bugfixes:**
- Prevent unnecessary snapshotting when running default assertions that would
unnecessarily increase CPU use in `cypress open` mode which lead to out of
memory crashes on certain browsers. Fixes
[#18549](https://togithub.com/cypress-io/cypress/issues/18549).
- Removed automatic retries for failed HTTP requests through the proxy. This
fixes an issue where failed requests could be re-sent too many times in some
conditions. This change could increase the number of failed requests that your
app sees. Fixes [#19043](https://togithub.com/cypress-io/cypress/issues/19043).
- Reduced the occurrence of an issue where logs for `fetch` and `xhr` requests
could be associated with the wrong request. Fixes
[#19043](https://togithub.com/cypress-io/cypress/issues/19043).
- Tests that are skipped within `then` blocks will no longer throw errors
causing the test to fail. Tests that are skipped outside of `then` blocks will
no longer trigger the fail event. This will prevent screenshots from happening
from errors thrown by the fail event.Fixes
[#14867](https://togithub.com/cypress-io/cypress/issues/14867) and
[#17660](https://togithub.com/cypress-io/cypress/issues/17660).
- Fixed a regression in [9.0.0](https://docs.cypress.io/guides/references/changelog#9-0-0) where a
fixture provided in a static response to `cy.intercept()` did not support
passing `null` to encoding to read the fixture as a Buffer. This identified an
undocumented 9.0.0 Breaking Change where the default read behavior of a
fixture changed from a Buffer to being read with `utf8` encoding. Fixes
[#19344](https://togithub.com/cypress-io/cypress/issues/19344).
- Fixed a regression in [9.0.0](https://docs.cypress.io/guides/references/changelog#9-0-0) where
`cy.contains()` attempted to ignore ` Githubissues.
Githubissues is a development platform for aggregating issues.
This PR contains the following updates:
7.7.0
->9.3.1
Release Notes
cypress-io/cypress
### [`v9.3.1`](https://togithub.com/cypress-io/cypress/releases/v9.3.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.3.0...v9.3.1) *Released 1/19/2022* **Bugfixes:** - Fixed an issue where the bin file was released with windows line breaks. Fixes [#19747](https://togithub.com/cypress-io/cypress/issues/19747). ### [`v9.3.0`](https://togithub.com/cypress-io/cypress/releases/v9.3.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.2.1...v9.3.0) *Released 1/18/2022* **Features:** - Added a new Cypress command, called [`.selectFile()`](https://docs.cypress.io/api/commands/selectfile), to select a file or files in an HTML5 input element or simulate dragging a file or files into the browser. The API is similar to `cypress-file-upload` and we have provided a [migration guide](https://docs.cypress.io/guides/references/migration-guide#Migrating-from-cypress-file-upload-to-selectFile) for previous users of that plugin. For more details, see [our blog post](https://cypress.io/blog/2022/01/18/uploading-files-with-selectfile/). Fixes [#19524](https://togithub.com/cypress-io/cypress/issues/19524) and [#170](https://togithub.com/cypress-io/cypress/issues/170). - Exposed the `Buffer` polyfill, as [`Cypress.Buffer`](https://docs.cypress.io/api/utilities/buffer), to enable working with binary data. Addressed in [#19524](https://togithub.com/cypress-io/cypress/issues/19524). - Added the `CYPRESS_DOWNLOAD_PATH_TEMPLATE` environment variable which can be set to a string template for building the download URL for the Cypress binary. This environment variable is useful for users who are downloading the Cypress binary from a proxy that is not one-to-one with the Cypress's default download url. More information can be found in the [Install Binary](https://docs.cypress.io/guides/getting-started/installing-cypress#Install-binary) documentation. Fixes [#15697](https://togithub.com/cypress-io/cypress/issues/15697). **Bugfixes:** - Fixed an issue where the `--spec` CLI parameter was not working properly when passing multiple glob patterns that are separated by commas. Fixes [#16102](https://togithub.com/cypress-io/cypress/issues/16102). - Fixed an issue with how the `CYPRESS_VERIFY_TIMEOUT` environment variable was read so it can set in a project's `package.json` or it's `.npmrc`. Fixes [#19559](https://togithub.com/cypress-io/cypress/issues/19559). **Dependency Updates:** - Upgraded `graceful-fs` from `4.2.0` to `4.2.9`. This upgrade resolves issues observed with using graceful-fs v4.2.0 with resolve v1.21+. Addressed in [#19676](https://togithub.com/cypress-io/cypress/issues/19676) and resolves [#19610](https://togithub.com/cypress-io/cypress/pull/19610). - **NOTE:** This upgrade to `graceful-fs` breaks Cypress's compatibility with Yarn 2. We have observed errors with Yarn 2.4.2 with `graceful-fs` 4.2.9. Before this change, Cypress had minimal Yarn 2 support (see [#6377](https://togithub.com/cypress-io/cypress/issues/6377)). Between Yarn 3 fixing multiple bugs and the migration path from Yarn 2 to Yarn 3 being minimal, we felt the best step forward was to support and recommend Yarn 3 over Yarn 2. - Upgraded `electron` from `15.2.0` to `15.3.4`. Addressed in [#19351](https://togithub.com/cypress-io/cypress/issues/19351). ### [`v9.2.1`](https://togithub.com/cypress-io/cypress/releases/v9.2.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.2.0...v9.2.1) *Released 1/10/2022* **Bugfixes:** - Fixed a regression in [9.2.0](https://docs.cypress.io/guides/references/changelog#9-2-0) to keep Cypress open after each spec finishes when the `--headed --no-exit` flags are passed to `cypress run`. Fixes [#19485](https://togithub.com/cypress-io/cypress/issues/19485). - Improve heuristic for verifying when the `--openssl-legacy-provider` option should be passed to the plugins' child process when the system Node version is v17+. This prevents Cypress from crashing when a user has Node 17 installed which was built with OpenSSL v1. Fixes [#19320](https://togithub.com/cypress-io/cypress/issues/19320). - Correctly cast the `CYPRESS_VERIFY_TIMEOUT` environment variable as a number so Cypress will no longer throw `TypeError: Expected the timeout option to be a non-negative integer`. Fixes [#19476](https://togithub.com/cypress-io/cypress/issues/19476). **Dependency Updates:** - Update pinned resolution of `cli-table3` from `~0.6.0` to `~0.6.1` to avoid problems with the bug introduced in the [colors.js v1.4.44-liberty-2 release](https://togithub.com/Marak/colors.js/issues/285). Addresses [#19624](https://togithub.com/cypress-io/cypress/issues/19624). ### [`v9.2.0`](https://togithub.com/cypress-io/cypress/releases/v9.2.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v9.1.1...v9.2.0) *Released 12/20/2021* **Features:** - Cypress will throw an error when a user attempts to update a configuration value at run-time using either the Test Configuration or using `Cypress.config()` that is a [readonly option](https://docs.cypress.io/guides/references/configuration#Test-Configuration). Addresses [#6407](https://togithub.com/cypress-io/cypress/issues/6407) and [#19001](https://togithub.com/cypress-io/cypress/issues/19001). - A `timeout` option has been added to the `cy.writeFile()` command, with a default value of `defaultCommandTimeout`. Addresses [#3350](https://togithub.com/cypress-io/cypress/issues/3350). - The default `maxHttpBufferSize` for the internal socket server has been increased to [Node's maximum Buffer size](https://nodejs.org/api/buffer.html#bufferconstantsmax_length) (size varies by OS) to allow large file writes with `cy.writeFile()`. Addresses [#19140](https://togithub.com/cypress-io/cypress/issues/19140). - Add `CYPRESS_VERIFY_TIMEOUT` environment variable to override the timeout duration of the `verify` command. Addresses [#18290](https://togithub.com/cypress-io/cypress/issues/18290). **Bugfixes:** - Prevent unnecessary snapshotting when running default assertions that would unnecessarily increase CPU use in `cypress open` mode which lead to out of memory crashes on certain browsers. Fixes [#18549](https://togithub.com/cypress-io/cypress/issues/18549). - Removed automatic retries for failed HTTP requests through the proxy. This fixes an issue where failed requests could be re-sent too many times in some conditions. This change could increase the number of failed requests that your app sees. Fixes [#19043](https://togithub.com/cypress-io/cypress/issues/19043). - Reduced the occurrence of an issue where logs for `fetch` and `xhr` requests could be associated with the wrong request. Fixes [#19043](https://togithub.com/cypress-io/cypress/issues/19043). - Tests that are skipped within `then` blocks will no longer throw errors causing the test to fail. Tests that are skipped outside of `then` blocks will no longer trigger the fail event. This will prevent screenshots from happening from errors thrown by the fail event.Fixes [#14867](https://togithub.com/cypress-io/cypress/issues/14867) and [#17660](https://togithub.com/cypress-io/cypress/issues/17660). - Fixed a regression in [9.0.0](https://docs.cypress.io/guides/references/changelog#9-0-0) where a fixture provided in a static response to `cy.intercept()` did not support passing `null` to encoding to read the fixture as a Buffer. This identified an undocumented 9.0.0 Breaking Change where the default read behavior of a fixture changed from a Buffer to being read with `utf8` encoding. Fixes [#19344](https://togithub.com/cypress-io/cypress/issues/19344). - Fixed a regression in [9.0.0](https://docs.cypress.io/guides/references/changelog#9-0-0) where `cy.contains()` attempted to ignore ` Githubissues.