3.2.0

Released Released on March 14, 2019

Features:

  • cy.visit() has been expanded to allow options url, method, body, and headers. This allows cy.visit() to be called with a POST method or with headers like Accept-Language or Authorization. Fixes #1500, #1904 and #908.

  • cy.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

  • The --browser argument of the Command Line and the browser argument of the Module API have been updated to allow passing a <path>. Addresses #1026.

  • cy.type() now accepts {home} and {end} special character sequences to move the cursor to the start or end of a line. Addresses #2033.

  • The Cypress Chrome extension now has a static ID of caljajdfkjjjdehjdoimjkkakekklcck. This allows Cypress to be added to your allowed extensions for those working under corporate policies that prohibit extensions. Addresses #3673, #1239 and #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.

  • Fixed an issue when testing applications using older versions of jQuery. They now no longer throw item.first is not a function. Fixes #2927.

  • Cypress now detects more instances of browser installations. Fixes #3183 and #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.

  • 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 and #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.

  • The prompt to "Restore pages?" is no longer displayed within Chrome upon restarting a crashed Chrome window. Addresses #2048.

  • cy.wrap() no longer throws an error when a non-jQuery wrapped DOM element is passed in as an argument. Fixes #3549.

  • Fixed issue where all arguments passed to setTimeout or setInterval were not properly passed on to the target function. Fixes #3592.

  • .filter() has been updated so that when called with a function, the options are now properly read. Fixes #3315.

  • Cypress's recognition of websites attempting framebusting has been updated to include framebusting code wrapped within (). #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() command with an assertion that is not met. Fixes #1531.

  • When cy.wrap() is followed directly by a .should() command, cy.wrap() will now retry when its argument evaluates to undefined until it meets the requirements of the assertion or the cy.wrap() command times out. Fixes #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 and #2298.

  • The number of logs printed when installing Cypress in Docker has been reduced. Partially addresses #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. Addressed in #3272, #3287, and #3700.

  • We now only mount internal servers on loopback. Addresses #3712.

  • The instructions in Cypress's update window now include yarn update instructions alongside npm. Addresses #2871.

  • The spec file's font weight has been increased within the Test Runner for better readability. Addressed in #3065.

  • We improved the error message displayed when a record key is unrecognized during cypress run. Addresses #1449.

  • We improved the typings when using Cypress.on to listen for window.alert events to allow for Sinon.stub. Fixes #3451.

  • Fixed typo in typing for .trigger options. Addressed in #3588.

Documentation Changes:

  • New Retryability doc #1278

  • Updated --browser and browser args to accept path #1419

  • Document how to accept or reject project transfers #1474

  • Updated docs on explain how to run Chrome and Chromium browsers #1339

  • Added {home} and {end} character sequences to cy.type() doc. Also wrote better description of what {downarrow} and {uparrow} character sequences actually do. #1347

  • Added all newly supported HTTP methods to cy.request() doc.

  • Add new section to Troubleshooting doc explaining how to allow the Cypress Chrome extension.

  • Fixed code example for google analytics stubbing #1454

Dependency Updates

  • Upgraded @cypress/commit-info from 2.1.1 to 2.1.2. #3327.

  • Upgraded @cypress/xvfb from 1.2.3 to 1.2.4. #3328.

  • Upgraded @ffmpeg-installer/ffmpeg from 1.0.15 to 1.0.17. #3329.

  • Upgraded cachedir from 1.3.0 to 2.1.0. #3660.

  • Upgraded chalk from 2.4.1 to 2.4.2. #3362.

  • Upgraded chokidar from 1.6.0 to 1.7.0. #3363.

  • Upgraded coffee-script from 1.12.5 to 1.12.7. #3365.

  • Upgraded commander from 2.11.0 to 2.19.0. #3366.

  • Upgraded common-tags from 1.4.0 to 1.8.0. #3368.

  • Upgraded compression from 1.7.2 to 1.7.3. #3379.

  • Upgraded cookie from 0.2.4 to 0.3.1. #3380.

  • Upgraded cookie-parser from 1.4.3 to 1.4.4. #3443.

  • Upgraded dependency-tree from 6.4.0 to 6.5.0. #3381.

  • Upgraded electron-context-menu from 0.8.0 to 0.11.0. #3383.

  • Upgraded electron-packager from 9.0.1 to 9.1.0. #3384.

  • Upgraded electron-positioner from 3.0.0 to 3.0.1. #3385.

  • Upgraded errorhandler from 1.1.1 to 1.5.0. #3386.

  • Upgraded express from 4.16.2 to 4.16.4. #3409.

  • Upgraded extract-zip from 1.6.6 to 1.6.7. #3410.

  • Upgraded glob from 7.1.2 to 7.1.3. #3412.

  • Upgraded image-size from 0.5.5 to 0.7.2. #3413 and #3500.

  • Upgraded is-ci from 1.0.10 to 1.2.1. #3414.

  • Upgraded lodash from 4.17.4 to 4.17.11. #3344.

  • Upgraded mocha-junit-reporter from 1.17.0 to 1.18.0. #3417.

  • Upgraded moment from 2.23.0 to 2.24.0. #3433.

  • Upgraded morgan from 1.3.0 to 1.9.1. #3434.

  • Upgraded node-uuid from 1.4.1 to 1.4.8. #3436.

  • Upgraded parse-domain from 2.0.0 to 2.1.7. #3437.

  • Upgraded request from 2.87.0 to 2.88.0. #3444.

  • Upgraded request-progress from 0.3.1 to 0.4.0. #3445.

  • Upgraded request-promise from 4.1.1 to 4.2.4. #3446 and #3476.

  • Upgraded return-deep-diff from 0.2.9 to 0.3.0. #3447.

  • Upgraded send from 0.14.2 to 0.16.2. #3448.

  • Upgraded ssl-root-cas from 1.2.5 to 1.3.1. #3449.

  • Upgraded supports-color from 5.1.0 to 5.5.0. #3464.

  • Upgraded through from 2.3.6 to 2.3.8. #3465.

  • Upgraded tmp from 0.0.31 to 0.0.33. #3466.

  • Upgraded tough-cookie from 2.4.3 to 3.0.1. #3477 and #3659.

  • Upgraded trash from 4.0.0 to 4.3.0. #3478.

  • Upgraded underscore.string from 3.3.4 to 3.3.5. #3480.

  • Upgraded yauzl from 2.8.0 to 2.10.0. #3481. Potentially fixes #3515.

  • We also updated many dependencies used for development and removed some unused dependencies.