4.8.0

Released Released on June 7, 2020

Features:

  • You can now apply certain test configuration for the duration of a suite or test by passing a configuration object to the test or suite as the second argument. Addresses #7167.

  • Cypress.isBrowser() has been expanded to allow for new matcher arguments to assist in filtering matching browsers. Addresses #7168.

  • We now display the currently running file at the top of the Test Runner's Command Log. That file can be opened in your preferred file opener by clicking the file. Addresses #7506.

  • We added experimental shadow DOM support through the experimentalShadowDomSupport option. See the Experiments page for more information. Addresses #144.

Bugfixes:

  • Upon domain navigation, before and after hooks defined in completed suites no longer erroneously rerun. Fixes #1987.

  • Errors thrown within root level after hooks now correctly display in the Test Runner's Command Log. Fixes #2296.

  • We fixed a regression in 4.6.0 where an XHR response without a body would cause Cypress to throw Cannot read property '__error' of null. Fixes #7518.

  • We fixed a regression in 4.6.0 where using cy.visit() to an authenticated URL would error with Request cannot be constructed from a URL that includes credentials: /__cypress/runner/./wasm/mappings.wasm Fixes #7481.

  • We now properly load code from the pluginsFile or supportFile when they are TypeScript files. Fixes #7459.

  • utf-8 characters now properly display within error code frames. Fixes #7507.

  • Errors thrown in a cy.on('fail', fn) fail handler now display a stack trace and code frame pointing to the origin of the error. Fixes #7512.

  • .click() now properly clicks on wrapped inline elements when the first child element in the parent element has no width or height. Fixes #7343 and #7012.

  • cy.wrap() now properly respects the timeout option. It also better handles situations when passed a promise that never resolves. Fixes #5980.

  • When experimentalSourceRewriting is enabled, Cypress will no longer exit with SIGABRT in certain situations. Fixes #7572.

  • We fixed a regression in 3.8.0 where the "Tests" button in the Test Runner wouldn't take you back to the tests list in all browsers. Fixes #5948.

  • Using the S shortcut during .pause() no longer does anything. This prevents the Test Runner from getting into a 'stuck' state. Fixes #6867.

Misc:

  • The design of errors and some iconography displayed in the Test Runner's Command Log have been updated. Addresses #7499, #7542 and #7563.

  • The commands in the Test Runner's Command Log now display in the same casing as the original command. Addresses #5773.

  • The navigation links in the Test Runner now display the correct CSS styles when focused. Addresses #7491.

  • Cypress.config() now has TypeScript types for the taskTimeout option. Addresses #7531.

  • TypeScript types for cy.screenshot() options and Cypress.log() have been updated to be more accurate. Addresses #7445.

  • TypeScript types for Cypress.automation have been added. Addresses #7519.

  • We now display a more accurate error message when passing a browser to the --browser flag that is not supported by Cypress. Addresses #6979.

  • We're continuing to make progress in converting our codebase from CoffeeScript to JavaScript. Addresses #2690 in #7588 and #7591.

Dependency Updates:

  • Upgraded chrome-remote-interface from 0.28.1 to 0.28.2. Addressed in #7615.

  • Upgraded electron from 8.3.0 to 8.3.1. Addressed in #7599.