Cypress v0.12.0stable Released Jul 19, 2018
โš ๏ธ Breaking Change Impact Score: 7/10

Cypress: 0.12.0

Source available โ€” automated, not human-reviewed

Component: cypress ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking Changes:** - The object you receive after waiting on an XHR alias is now different. Previously this was a `FakeXMLHttpRequest` object which came from `sinon`. Now it is a special `XMLHttpRequest` object which comes from Cypress. You may need to rewrite some of your assertions but we've tried to keep the signatures as close as possible.
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Cypress v0.12.0. Source highlight: *Released 10/23/2015*

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • Breaking Changes:** - The object you receive after waiting on an XHR alias is now different. Previously this was a `FakeXMLHttpRequest` object which came from `sinon`. Now it is a special `XMLHttpRequest` object which comes from Cypress. You may need to rewrite some of your assertions but we've tried to keep the signatures as close as possible.

โšก Performance & Enhancements (1)

  • Whitelisting assets which should never be stubbed has been improved. Now `.jsx` templates pass-through correctly.

๐Ÿ”ง Bug Fixes & Patches (1)

  • Any issues related to `requestJSON` or `responseJSON` being duplicated are now fixed. Fixes #65.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
*Released 10/23/2015* **Summary:** - XHR handling has been rewritten to be much more flexible, extensible, and future-proof. **Breaking Changes:** - The object you receive after waiting on an XHR alias is now different. Previously this was a `FakeXMLHttpRequest` object which came from `sinon`. Now it is a special `XMLHttpRequest` object which comes from Cypress. You may need to rewrite some of your assertions but we've tried to keep the signatures as close as possible. - The XHR's `url` property will now always return you a `Fully Qualified Domain Name` including the origin, port, host, etc. Previously the `url` property represented whatever the `XHR` was opened with. We've worked around this difference by when checking whether an XHR should be stubbed, the origin is tested both as present and omitted. Deprecations: - Accessing `requestJSON` or `responseJSON` on XHR objects is deprecated, and will be removed in the next version. Accessing those properties will throw a warning which explains how to rewrite these. - `cy.respond` is *temporarily* deprecated because the semantics of how this works is completely different and will require more work (mentioned later on) before this can be re-enabled again. **Features:** - All XHR's (regardless of whether they are stubbed or not) are now logged in the Command Log. Stubbed XHR's display as "XHR Stub" vs vanilla "XHR". - Stubbed XHR's will now show up in the `Network Tab` in Dev Tools. In other words they will *really* go out and you'll be able to inspect them just like regular XHRs. - Regular XHR's can now be aliased and waited on without actually being stubbed by passing `{stub: false}` to the [cy.route()](https://on.cypress.io/route). - XHR's will continue to work correctly even *after* a test ends. In previous versions, due to replacing the entire XHR object, your application would not work correctly after a test ended. This prevented you from "navigating around" and working with your app after the tests end. - Servers can now be disabled in the middle of a test. Previously once a server was started all XHR's would be stubbed. - You can now disable the force sending of `404` to all XHR's which are not stubbed. This allows you to mix and match, enabling some requests to be stubbed and others to hit your server and respond normally. - The default XHR configuration can now be overwritten in a single area. - Many new configuration options are available for controlling how XHR's are stubbed. - XHR's now include an `Initiator` stack regardless of whether they're stubbed. The `Initiator` stack includes the stack which caused the XHR to be created and sent. - The `onConsole` information related to an XHR has been updated to make it easier to understand why a route was or was not stubbed, and its associated request and response headers. - Response headers on XHR stubs will now automatically set their `Content-Type` based on the stub response. Previously this would always set to the `Content-Type` to `application/json`. Now if you force a response to be text or html, the `Content-Type` response header will be set appropriately. - You can now force other additional response headers to be sent on stubbed XHRs. - XHR's now snapshot twice - when the request is made and when the response is returned. - Removed sending `sinon` on every [cy.visit()](https://on.cypress.io/visit). - The XHR object which is returned to you to via [cy.wait()](https://on.cypress.io/wait) is now more consistent with other return values such as [cy.request()](https://on.cypress.io/request). It should be much easier to work with `request body`, `request headers`, `response body` and `response headers`. **Bugfixes:** - Routes no longer display as duplicated in between test runs when [cy.server()](https://on.cypress.io/server) is started prior to a [cy.visit()](https://on.cypress.io/visit) and you cause a full page refresh, which caused all routes to be re-bound. - Any issues related to `requestJSON` or `responseJSON` being duplicated are now fixed. Fixes [#65](https://github.com/cypress-io/cypress/issues/65). - Fully Qualified XHR's which should be proxied are now correctly transparently rewritten to prevent CORS problems. - [cy.route()](https://on.cypress.io/route) - `onRequest` and `onResponse` callbacks are now called with `cy` as the context. - Whitelisting assets which should never be stubbed has been improved. Now `.jsx` templates pass-through correctly. - CORS Network Errors are now correctly caught. **Misc:** - All `ng` based commands now display in the Command Log. - The built in XHR response delay has been removed since now all requests really go over the HTTP stack, which inherently has its own delay. You can still optionally force responses to be delayed by a set amount. Almost there: - Support for the native `fetch` object. - Configuration to automatically force Cypress to wait for outstanding XHR's (like it does for other Page Events). This would mean when testing more traditional apps without XHR stubbing, commands would automatically wait until all outstanding XHR's complete. The internal retry loop needs to be rewritten to make this possible, but the XHR architecture is now there.