All Versions
51
Latest Version
Avg Release Cycle
16 days
Latest Release
318 days ago

Changelog History
Page 3

  • v4.12.1 Changes

    August 05, 2020

    🚀 Released 8/5/2020

    🛠 Bugfixes:

    • ✅ The error Cannot set property 'err' of undefined will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes #7874.
    • ✅ Skipping the last test before a nested suite with a before hook will now correctly run the tests in the suite following the skipped test. Fixes #8086.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded md5 from 2.2.1 to 2.3.0. Addressed in #8161.
    • ⬆️ Upgraded electron-context-menu from 0.15.1 to 2.2.0. Addressed in #8180.
  • v4.12.0 Changes

    August 03, 2020

    🚀 Released 8/3/2020

    🔋 Features:

    • 🔧 Now you can control whether screenshots are automatically taken on test failure during cypress run by setting screenshotOnRunFailure in your configuration. Addresses #5029.
    • 🔌 The pluginsFile now has access to a readonly version property within the config object that returns the current Cypress version being run. This will allow plugins to better target specific Cypress versions. Addresses #6352.
    • ✅ During cypress open, you can now run a subset of all specs by entering a text search filter and clicking 'Run n tests'. Addresses #6581.

    🛠 Bugfixes:

    • 🛠 position: fixed elements that have a parent with pointer-events: none will now correctly evaluate as visible. Fixes #6675.
    • 🛠 Applications using custom elements will no longer trigger infinite XHR request loops. Fixes #1068.
    • 🛠 When snapshotting the DOM, Cypress no longer causes attributeChangedCallback to be triggered on custom elements. Fixes #7187.
    • 🛠 Spec files containing + characters now properly run in Cypress. Fixes #5909.
    • 🛠 When using the fx shortcut in cy.route(), an error is now thrown when the fixture file cannot be found. Fixes #7818.
    • 🛠 Cypress no longer thrown Cannot read property '__error' of null error when passing a file containing null content to cy.fixture(). Fixes #8010.
    • 🛠 Values containing exponential operators passed to --env via the command line are now properly read. Fixes #6891.
    • ✅ The "Open in IDE" button no longer disappears from hooks when the tests are manually rerun. Fixes #8094.
    • 🛠 When experimentalSourceRewriting is enabled, AST rewriting will no longer return an output before the body is done being written. This would happen when the response body was too large and the response would be sent while the body was still being modified. Fixes #8043.
    • 🛠 When using .type(), Cypress now properly types into an input within an iframe that auto focuses the input. Fixes #8111.

    Misc:

    • 🚀 Dependencies for our cypress npm package are no longer pinned to a specific version. This allows the use of npm audit fix to fix security vulnerabilities without needing a patch release from Cypress. Addresses #8046.
    • We now collect environment variables for AWS CodeBuild when recording to the Dashboard. Addressed #8101.
    • Types inside Module API are now accessible via the CypressCommandLine namespace. Addresses #7309.
    • We added more type definitions for the .should() command. Addresses #5573.
    • Cookie command's expiry property type is now a Number instead of a String. Addresses #8144.
    • ✅ There are some minor visual improvements to the Test Runner's Command Log when hovering, focusing and clicking on hook titles and pending tests. Addressed in #8153.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded jimp from 0.13.0 to 0.14.0. Addressed in #8102.
    • ⬆️ Upgraded moment from 2.26.0 to 2.27.0. Addressed in #8122.
  • v4.11.0 Changes

    July 21, 2020

    🚀 Released 7/21/2020

    🔋 Features:

    • You can now pass an ensureScrollability: false option to .scrollTo() to skip checking whether the element is scrollable. Addresses #1924.
    • 🛠 cy.clock() now accepts Dates as well as a Number for now. Fixes #7786.

    🛠 Bugfixes:

    • 🏁 Running multiple specs within Firefox during cypress run on Windows will no longer fail trying to make a connection to the browser. Fixes #6392.
    • 🛠 Cypress will no longer throw a Cannot read property 'isAttached' of undefined error during cypress run on Firefox versions >= 75. Fixes #6813.
    • 🛠 Fixed an issue where Cypress tests in Chromium-family browsers could randomly fail with the error "WebSocket is already in CLOSING or CLOSED state." Fixes #7180.
    • 🛠 Taking a screenshot of an element that changes height upon scroll will no longer throw an invalid for option "size" error. Fixes #6099.
    • 🔧 Setting viewportHeight or viewportWidth from within the test configuration now properly changes the viewport size for the duration of the suite or test.
    • 🔌 Setting deep objects and arrays on config within the pluginsFile now sets the values correctly. Fixes #7959.
    • 🛠 The progress bar for cy.wait() now reflects the correct requestTimeout and responseTimeout of the command. Fixes #7881.
    • ✅ The command's progress bar will not longer restart when its parent test is collapsed in the Command Log. Fixes #7912.
    • Key value pairs sent to ELECTRON_EXTRA_LAUNCH_ARGS as key=value will now be properly read in. Fixes #7994.
    • ✅ Stubbed responses responding with an empty string to cy.route() now correctly display as 'xhr stub' in the Test Runner's Command Log. Fixes #8018.
    • ✅ Quickly reclicking the "Run All Tests" button in the Test Runners' Command Log will no longer throw errors about undefined properties and the tests will no longer hang. Fixes #7968.

    Misc:

    • 🔌 The error messages thrown from pluginsFile and supportFile now mention that .ts extensions are supported. Addresses #7940.
    • 💅 The style when focusing on tests in the Command Log has been updated. Addresses #7855.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded @benmalka/foxdriver from 0.4.0 to 0.4.1. Addressed in #8040.
    • ⬆️ Upgraded firefox-profile from 1.3.1 to 2.0.0. Addressed in #8000.
    • ⬆️ Upgraded fix-path from 2.1.0 to 3.0.0. Addressed in #8028.
    • ⬆️ Upgraded human-interval from 0.1.6 to 1.0.0. Addressed in #8031.
    • ⬆️ Upgraded lodash from 4.17.15 to 4.17.19. Addressed in #7954.
    • ⬆️ Upgraded plist from 2.1.0 to 3.0.1. Addressed in #8045.
    • ⬆️ Upgraded proxy-from-env from 1.0.0 to 1.1.0. Addressed in #7900.
    • ⬆️ Upgraded resolve from 1.13.1 to 1.17.0. Addressed in #7989.
    • ⬆️ Upgraded systeminformation from 4.21.1 to 4.26.9. Addressed in #7975.
    • ⬆️ Upgraded uuid from 3.3.2 to 8.2.0. Addressed in #7976, #8002, and #8011.
  • v4.10.0 Changes

    July 07, 2020

    🚀 Released 7/7/2020

    🔋 Features:

    • You can open a before, beforeEach, after, and afterEach hook definition in your IDE from the Test Runner's Command Log by clicking the Open in IDE button. Addresses #7793.
    • before, beforeEach, after, and afterEach hook definitions now display separately in the Test Runner's Command Log when defined in separate hook definitions. Addresses #7779.
    • ✅ You can now open a spec file directly from the Tests tab in the Test Runner by clicking the Open in IDE button. Addresses #7713

    🛠 Bugfixes:

    • 0️⃣ HTTP requests taking longer than the default responseTimeout will no longer be prematurely canceled by the Cypress proxy layer. Fixes #6426.
    • 🛠 Using Cypress commands to traverse the DOM on an application with a global parent variable will no longer throw Illegal Invocation errors. Fixes #6412.
    • 🛠 When experimentalShadowDomSupport is enabled, using .type() on an input in the Shadow DOM will not result in an error. Fixes #7741.
    • 🛠 When experimentalShadowDomSupport is enabled, checking for visibility on a shadow dom host element will no longer hang if the host element was the foremost element and had an ancestor with fixed position. Fixes #7893.
    • 🔊 Debug logs from the @benmalka/foxdriver module will no longer appear if any DEBUG environment variable was set. Fixed #7723.

    Misc:

    • ⚡️ We made some minor UI updates to the Test Runner. Addresses #7732 and #7803.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded recast from 0.18.8 to 0.19.1. Addressed in #7898.
  • v4.9.0 Changes

    June 23, 2020

    🚀 Released 6/23/2020

    🔋 Features:

    • ✅ An animated progress bar now displays on every command in the Command Log indicating how long the command has left to run before reaching its command timeout. Addresses #7642.
    • 🔧 There is now an experimentalFetchPolyfill configuration option. When this option is true, Cypress will automatically replace window.fetch with a polyfill that Cypress can spy on and stub. Addresses #7710.
    • You can now pass a --quiet flag to cypress run to silence any Cypress specific output from stdout. Addresses #7714.

    🛠 Bugfixes:

    • cy.wait() now correctly resolves when waiting for XHR requests that contain resource-like text in the XHR's query params or hash (like .js, .html, .css). #7280.
    • ✅ We fixed a regression in 4.6.0 where errors thrown from the application under test as strings would not be correctly handled. Fixes #7590.
    • 🛠 We fixed a regression in 4.8.0 where .click() would hang if the subject had a shadow root and experimentalShadowDomSupport was not enabled. Fixes #7679.
    • 🛠 We fixed a regression in 4.6.0 so that .should('have.value') now properly asserts against <progress>, <meter> or <li> element's values. Fixes #7603.
    • 🛠 Cypress no longer responds with 413 responses during a recorded cypress run when the stdout is too large. Fixes #7548.
    • ✅ We fixed an issue where Cypress could exit successfully even with failing tests when launched in global mode. Fixes #7755.
    • ✅ Assertion logs now properly display as parent commands in the Command Log regardless of what is in the beforeEach hook. Fixes #7731.
    • 🛠 When experimentalShadowDomSupport is enabled, querying shadow dom in certain situations will no longer cause the error Cannot read property 'length' of undefined during cypress run. Fixes #7676.
    • ✅ Highlighting of elements upon hover of a command in the Command Log are now visible when targeting absolute positioned elements. Fixes #7762.
    • 🛠 cypress run will no longer crash when provided an empty string to the --project flag. Fixes #7743.

    Misc:

    • ✅ There is now a loading state to indicated when tests are loading in the Command Log. Addresses #7700.
    • ⚡️ The type definitions for fixturesFolder, pluginsFile, screenshotsFolders and videoCompression have been updated to allow false TypeScript types. Addresses #7654.
    • The type definitions for cy.wait(ms) now correctly yield the type of the previous subject. Addresses #7682.
    • The type definitions now allow for the 'key' keyword when chaining off 'any' or 'all' assertion chainers. Addresses #7665.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded arch from 2.1.1 to 2.1.2. Addressed in #7672.
    • ⬆️ Upgraded eventemitter2 from 4.1.2 to 6.4.2. Addressed in #7705 and #7707.
    • ⬆️ Upgraded getos from 3.1.1 to 3.2.1. Addressed in #7685.
    • ⬆️ Upgraded is-installed-globally from 0.1.0 to 0.3.2. Addressed in #7703.
    • ⬆️ Upgraded jimp from 0.12.0 to 0.13.0. Addressed in #7618.
    • ⬆️ Upgraded moment from 2.24.0 to 2.26.0. Addressed in #7718.
    • ⬆️ Upgraded signal-exit from 3.0.2 to 3.0.3. Addressed in #7738.
  • v4.8.0 Changes

    June 08, 2020

    🚀 Released 6/8/2020

    🔋 Features:

    🛠 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 #7434 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 experimentalComponentTesting 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.
  • v4.7.0 Changes

    May 26, 2020

    🚀 Released 5/26/2020

    🔋 Features:

    • 0️⃣ cy.request() now supports an encoding option that can be used to set the encoding of the response body, defaulting to utf-8. Addresses #2029 and #3576.

    🛠 Bugfixes:

    • ✅ We fixed a regression in 4.6.0 where the address bar of the application under test would disappear when scrolling commands ran and the application under test would visually shift after taking screenshots. Fixes #7443 and #7466.
    • ✅ We fixed a regression where test runs could hang when loading spec files with source maps. Fixes #7464.

    Misc:

    • 🔌 We now display a more descriptive error message when the plugins file does not export a function. Addresses #6611.
  • v4.6.0 Changes

    May 20, 2020

    🚀 Released 5/20/2020

    🔋 Features:

    • Errors in the Test Runner now display a code frame to preview where the failure occurred with the relevant file, line number, and column number highlighted. Clicking on the file link will open the file in your preferred file opener and highlight the line and column in editors that support it. Addresses #3762.
    • ⬆️ Cypress now utilizes source maps to enhance the error experience. Stack traces are translated so that your source files are shown instead of the generated file that is loaded by the browser. Cypress will include an inline source map in your spec file. If you modify the preprocessor, ensure that inline source maps are enabled to get the same experience. Users of @cypress/webpack-preprocessor should upgrade to v5.4.1 or later of the package which will correctly inline source maps. Addresses #881, #1761 and #3966.
    • 🔧 Cypress now enables AST-based JS/HTML rewriting when setting the experimentalSourceRewriting configuration option to true. Addresses #5273.
    • Number arguments passed to have.text, have.id, have.data, have.value, and have.attr assertions chainers are now automatically cast to strings for comparison. Addresses #7314.

    🛠 Bugfixes:

    • 0️⃣ Default TypeScript options are now set to module: commonJS which Node.js and the browser expect. This fixes a situation where setting a different module in a tsconfig.json would cause errors to throw if you had export, import or async keywords in your code. Fixes #7005, #7011, #7043, and #7151.
    • 🛠 When experimentalSourceRewriting is enabled, setting location or location.href to a relative href, or using location.replace or location.assign with a relative href will no longer navigate the AUT to the wrong URL. Fixes #3975 and #3994.
    • 🛠 When experimentalSourceRewriting is enabled, the use of window.top and window.parent will no longer cause the AUT to break out of the Cypress iframe. Fixes #5271 and #1467.
    • 🛠 When experimentalSourceRewriting is enabled, calls to window.frames, window.parent.frames, and other frames will no longer point to the wrong reference after being proxied through Cypress. Fixes #2664.
    • 🛠 When experimentalSourceRewriting is enabled, scripts using the integrity attribute for sub-resource integrity (SRI) will now load after being proxied through Cypress. Fixes #2393.
    • 🛠 When experimentalSourceRewriting is enabled, the use of document.location to set the URL will no longer navigate the AUT to the wrong URL. Fixes #7402.
    • 🛠 Type definitions will no longer conflict when running Cypress in a project with Jest. Fixes #3536.
    • 🛠 We increased the timeout for launching Firefox from 2.5 seconds to 50 seconds. Previously, users hitting this limit would encounter a "cannot open socket" error; now, the error will be wrapped. Fixes #7159.
    • 🛠 .click will now click in the correct coordinates when either x or y coordinate options are zero. Fixes #7319.
    • 💻 Cypress no longer displays onError is not a function when a browser can't connect. Fixes #7217.
    • You can now pass the force: true option to .select() to select options within a disabled <select>. Addresses #107.
    • 🛠 We now throw an error when attempting to .select() an <option> within a disabled <optgroup>. Fixes #7226.
    • 🛠 We fixed a regression in 4.3.0 where the message output during errors were not formatted correctly. Fixes #6924.
    • Using Cypress._.capitalize now correctly behaves the same as Lodash's capitalize method. Fixes #7222.
    • ✅ When experimentalComponentTesting is enabled, clicking on a component spec now watches the correct file without assuming it is an integration file. Fixes #7244.
    • 🛠 Firefox video recording no longer crashes Cypress when running very short spec files. Fixes #6408.
    • 🛠 Applications containing a DOM element with an id attribute containing 'jquery' will no longer throw an error during cy.visit(). Fixes #6193.
    • ✅ Long errors generated when compiling or bundling the test file are now horizontally scrollable. Fixes #6898.

    Misc:

    • ⚠ Cypress no longer requires write access to the root of the project, it instead will display a warning when no write access is given. Addresses #1281.
    • ⏱ We increased the timeout for launching Chrome from 20 seconds to 50 seconds. Addressed in #7372.
    • 🍎 We increased the timeout for macOS or Linux to exit from a --version command when looking for available browsers from 5 seconds to 30 seconds. Addressed in #7366.
    • 💻 We improved error handling when Cypress launches Chromium-family browsers. Addresses #6518.
    • We now export Cypress.ConfigOptions types as a partial of the full options interface. Addresses #7238.
    • We're continuing to make progress in converting our codebase from CoffeeScript to JavaScript. Addresses #2690 in #7162, #7216, #7227, #7320, #7232, and #7345.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded @cypress/browserify-preprocessor from 2.2.2 to 2.2.3. Addressed in #7291.
    • ⬆️ Upgraded cookie-parser from 1.4.4 to 1.4.5. Addressed in #7389.
    • ⬆️ Upgraded cypress-multi-reporters from 1.2.4 to 1.4.0. Addressed in #7431.
    • ⬆️ Upgraded electron from 8.2.3 to 8.3.0. Addressed in #7236 and #7387.
    • ⬆️ Upgraded image-size from 0.7.4 to 0.8.3. Addressed in #7236.
    • ⬆️ Upgraded jimp from 0.9.3 to 0.12.0. Addressed in #7408.
    • ⬆️ Upgraded return-deep-diff from 0.3.0 to 0.4.0. Addressed in #7292.
  • v4.5.0 Changes

    April 28, 2020

    🚀 Released 4/28/2020

    🔋 Features:

    🛠 Bugfixes:

    • 🛠 Custom Mocha reporters will now correctly use the version of Mocha bundled with Cypress. Fixes #3537 and #6984.
    • 🛠 We better account for word boundaries in application scripts when modifyObstructiveCode is true. Fixes #7138.
    • 🛠 Fixed an issue where iterators in TypeScript were not properly transpiled. Fixes #7098.

    Misc:

    • ⚡️ The update window in the Test Runner now encourages yarn users to yarn upgrade Cypress instead of yarn add to help prevent installing 2 versions of Cypress when using yarn workspaces. Addressed in #7101.
    • We're continuing to make progress in converting our codebase from CoffeeScript to JavaScript. Addresses #2690 in #7031 and #7097.

    ⚡️ Dependency Updates:

    • ⬆️ Upgraded electron from 8.2.0 to 8.2.3. Addressed in #7079.
  • v4.4.1 Changes

    April 20, 2020

    🚀 Released 4/20/2020

    🛠 Bugfixes:

    • 🛠 Cypress can now launch on systems where Chromium is installed via Snapcraft. Fixes #7020.
    • 🛠 We now check whether the mouseup event's target element is detached before issuing the click event during .click(). Fixes #6923.
    • ✅ We fixed a regression in 3.8.1 where the Test Runner could send an undefined organization ID during project setup when the default organization is preselected. Fixes #7013.
    • 🛠 We fixed a regression in 4.4.0 that caused projects to include bundled TypeScript. Fixes #7036.
    • 🛠 Fixed an issue where sites that set Feature-Policy: document-domain 'none' headers would fail to load in Cypress. Fixes #6480.

    Misc:

    • ✅ We fixed some extra spacing displaying below the project nav in the Test Runner. Addresses #7023
    • The typings for run results when using the Module API now indicate they can be null or undefined. Addresses #6126.
    • We're continuing to make progress in converting our codebase from CoffeeScript to JavaScript. Addresses #2690 in #7004.