NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3338 most downloaded on npm
Cypress is a next generation front end testing tool built for the modern web
Last release 5 days ago
29 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
11 years old
294 releases · first in 2015
Fixed more edge cases where legitimate JavaScript code was being modified unexpectedly by the `modifyObstructiveCode` configuration. We've tightened u
Released 2/17/2018
Bugfixes:
modifyObstructiveCode configuration. We've tightened up the regexp even more and added 40 popular JS libraries to test against to ensure they are not modified. Fixes #1334.beforeEach or afterEach threw an identical error message, Cypress would hang indefinitely and never finish running the tests. Fixes #674.Errors that threw with no arguments: throw new Error() and had their messages appended would duplicate the message over and over again. Fixes #1338.One column per quarter.
Using `cy.contains()` with a regexp argument is now properly escaped. Fixes #1322.
Released 2/16/2018
Bugfixes:
cy.contains() with a regexp argument is now properly escaped. Fixes #1322..js files to take dozens of seconds to process. This was a regression caused by 2.0.0 with the new modifyObstructiveCode option. We've optimized the regexp and the performance is back to being almost identical to transparently passing responses through. Fixes #1330.The built in default Electron browser has been bumped from version 53 to 59. This version represents the version of Chromium that Electron is using. I
Released 2/15/2018
Breaking Changes:
Electron browser has been bumped from version 53 to 59. This version represents the version of Chromium that Electron is using. In other words, running cypress run (or via Electron) will be like running your tests in Chrome 59 now. Although it is unlikely this would actually break any of your tests - it is technically possible they could behave differently. Fixes #895 and #891 and #823 and #860 and #1011 and #1252 and #1276.modifyObstructiveCode that is true by default. If you are experiencing problems after upgrading, you can turn this off and this will disable modifying your JS code. If you were using Cypress and upon visiting your website you would experience seemingly "random" redirects - these problems should now be eliminated. Fixes #886 and #1245 and #1064 and #992 and #692 and #352.Cache-Control headers will be cleaned and removed. In the future, we will expose a new cy.clearCache() method to provide finer grained control of clearing the cache on a per test basis. But for now, this is an improvement. Fixes #1124.--spec option is now normalized against the current working directory cwd instead of the project that you are running Cypress in. That means passing a path from the command line to a spec file will now work even when the project path is not cwd. Fixes #1159.Bugfixes:
blacklistHosts would occasionally not work if you were blacklisting a host that had previously cached a file. In this case, the browser would serve it from disk and not make an actual HTTP request. This issue has been solved by clearing the cache when the browser opens. Fixes #1154.blacklistHosts is now correctly accepted via the --config CLI flag.cy.stub() and cy.spy() will now retry their assertions when utilized from an alias. Fixes #1156.cy.visit(url). We also added a new auth option to specify the username/password using cy.visit(url, options). All of the requests that match the origin of the url will have the Authorization: Basic <...> headers added. Fixes #1288.local or localhost was not used as a tld. Fixes #1292 and #1278.--disable-background-networking from the Chrome launch args to fix problems in CI that would throttle XHR callbacks by up to 20-30 seconds. Fixes #1320.Misc:
cypress.json in the Settings tab in the Desktop Application.mb). Before upgrading, you should open the browser and then manually clear the Cache. Or - if you have already upgraded to 2.0.0 delete the following folders:
~/Library/Caches/Cypress~/.cache/Cypress%APPDATA%\Cypress\cy\production\browsersFixed not being able to visit subdomains when using 2nd level sub domains. Fixes #1175 and #600.
Released 2/4/2018
Bugfixes:
github.io, gitlab.io or herokuapp.com. These now all work correctly. Fixes #380 and #402 and #802 and #493 and #1161.*localhost such as http://app.localhost:8080. Fixes #451.1 when a hook fails. #1063.test.titlePath being a function. Fixes #1142.cypress.schema.json. Fixes #1167.NODE_ENV from being set to undefined when parent process did not have it defined. Fixes #1223.Misc:
Using DEBUG=cypress:* now correctly outputs all debugging information on OSX and Linux. Previously output other then cypress:cli was ignored due to th
Released 12/26/2017
Bugfixes:
DEBUG=cypress:* now correctly outputs all debugging information on OSX and Linux. Previously output other then cypress:cli was ignored due to the CLI ignoring stderr from the binary. Fixes #921.stdout is now captured correctly in Windows when recording to the Dashboard. Fixes #977 and issue #711.Misc:
TTY is now handled correctly for Linux and OSX. This means that CI providers which turned off colors due to TTY being false will now display colors again such as TravisCI. Fixes #1126.xvfb exiting with a non zero status code and display that error to you. This should help with situations where xvfb is misconfigured on the system. Fixes #1113.xvfb when DEBUG=cypress:xvfb is enabled. Helpful when diagnosing problems with xvfb. Fixes #1128.cy.* methods. Fixes #1117.There is now a Search Bar in the Desktop GUI that enables you to filter the list of specs. Helpful for projects with a ton of spec files. Fixes #1098.
Released 12/19/2017
Features:
Bugfixes:
example_spec.js file no longer fails in Windows on the cy.exec() test. It now conditionally runs a command appropriate for Windows. Fixes #1097..then(). Fixes #1084.Plugins now emit a `beforelaunch event exposing you the browser that will be launched and its launch arguments. This enables you to modify the argumen
Released 12/17/2017
Features:
before:browser:launch event exposing you the browser that will be launched and its launch arguments. This enables you to modify the arguments prior to launching the browser. You can also use these arguments to modify how Chrome runs and to also test Chrome extensions. Fixes #691 and #298.cy.get() and cy.contains() behavior. Additionally you can copy the generated Cypress command to your clipboard or output the generated selector to your console. This feature is in beta. It only works in Chrome (not in Electron). We are aware of some bugs in it, but it is good enough for use and feedback. Please check out issue #917, watch an animated gif demonstration, and leave any feedback you have there. Fixes #917.Documentation Changes:
Plugins can now return a Promise and modify the yielded config to set new configuration values and environment variables. Fixes #1042 and #909 and #57
Released 12/14/2017
Features:
Promise and modify the yielded config to set new configuration values and environment variables. Fixes #1042 and #909 and #576.userAgent option in cypress.json. This enables you to change the userAgent of the browser for the entire browsing session. Fixes #364.blacklistHosts option in cypress.json that allows you to block requests made to those hosts. Blocked requests will respond with a 503 status code. This is useful for blocking 3rd party domains like Google Analytics. We have added a new recipe demonstrating this. Fixes #442.Bugfixes:
Chainer interface changed. Please read 1048#issuecomment-351891910 to understand what you will need to update.Misc:
environmentVariables to env in the Desktop GUI. Fixes #1052.Cypress.config() now returns a complete set of configuration values. Fixes #509.$, _, etc. Fixes #1046.Documentation Changes:
Fixed an issue causing Chrome to timeout when attempted to be run through our docker containers. Fixes #1031.
Released 12/6/2017
Bugfixes:
Chrome to timeout when attempted to be run through our docker containers. Fixes #1031.http:// URL now works when using the CYPRESS_BINARY_VERSION flag to point the binary at an external location. Fixes #1001.Misc:
npm install which skips the binary installation after the cypress npm module completes its installation. Fixes #1005.--no-sandbox and --disable-gpu options in Linux. We will soon release a new plugin event that enables you to modify the browser arguments we use by default. This shouldn't cause issues with existing Linux users, and instead it should fix many CI setups that were using our Docker containers or your own home grown installed Chrome setup. Fixes #1021 and #1020.JSON fixtures with unicode escape sequences are now parsed correctly. Fixes #964.
Released 12/3/2017
Bugfixes:
browserify plugin no longer fires watched:file:changed twice leading to an uncaught exception that was popping up in the console. Also fixed a minor state bug in the browserify package. Fixes #968.Electron as the browser that ran in the Dashboard Service when a different browser was run. Fixes #854.Misc:
TypeScript definitions with the cypress npm module. You no longer have to install @types/cypress anymore. We'll continue to keep these updated with API changes. Fixes #856.cy.visit() now accepts { failOnStatusCode: false } which enables you to visit pages that respond with a non 2xx status code. This brings it into parity with cy.request(). Fixes #421 and #574.Cypress.platform and Cypress.arch for returning the underlying OS information. Uses node's os module under the hood. Fixes #824 and #675.Documentation Changes:
Fixed a regression caused by `.type()` adhering to maxlength incorrectly. Special character sequences were not respected. Now `.type()` works with spe
Released 11/26/2017
Bugfixes:
.type() adhering to maxlength incorrectly. Special character sequences were not respected. Now .type() works with special characters and implements a complete fix for maxlength. In addition to it working, it now fires all applicable browser events without modifying the actual input value. Fixes #955.Documentation Changes:
Fixed a bug swallowing plugin errors due to undefined reject function. Fixes #934.
We have officially launched the new Plugins API interface. This adds a cypress/plugins/index.js file to new and existing projects. Using this file wil
Released 11/19/2017
Summary:
cypress/plugins/index.js file to new and existing projects. Using this file will enable you to modify the internals of Cypress running in the background node process. This means you will be able to use node API's that are executed outside of the browser.browserify preprocessor into its own package - @cypress/browserify-preprocessor://github.com/cypress-io/cypress-browserify-preprocessor. This is bundled with Cypress, but it is extracted so it can be used / modified by you to change the default options we pass to browserify. Additionally, you can swap out this preprocessor for something else entirely.Features:
file:preprocessor. Fixes #580 and #581.browserify preprocessor. Fixes #343 and #905.browserify preprocessor. Fixes #663.Bugfixes:
cy.contains(selector, regexp) now works as intended. Fixes #801.cy.viewport() resolves if only width or only height changes. Fixes #873.Misc:
--global option useful with cypress open to force Cypress to open in global mode. This is helpful when you have multiple nested Cypress projects but only want to install Cypress once in the root project. Fixes #889.reporterOptions as an object literal like it does for the env and config properties. Fixes #899.Documentation Changes:
The Test Runner now enables you to collapse folders when displaying a list of specs. Fixes #760. Contributed by @metcorne.
Released 10/29/2017
Features:
Bugfixes
onChange event callback for React now works (again) on input type number or email. Fixes #816 and #770.cy.type(' ') now works. Fixes #807. Contributed by @tejasbubane.cy.spread() can now be used on a collection of DOM elements. Fixes #735. Contributed by @verheyenkoen.$(npm bin)/cypress foo. Fixes #641.Misc:
CYPRESS_RECORD_KEY without using the CLI by invoking the binary directly. Fixes #820.CYPRESS_ENV=staging. Fixes #813.CYPRESS_BINARY_VERSION environment variable. Closes #701.Documentation Changes:
cy.type now correctly fires change events on React 16. Fixes #647.
Released 10/13/2017
Bugfixes:
cy.type now correctly fires change events on React 16. Fixes #647.zone.js was the culprit. Fixes #741. Contributed by @MariMax.Misc:
cy.scrollTo now logs its coordinates when options are used. Fixes #725. Contributed by @sirugh.= character as values. Fixes #620. Contributed by @HugoGiraudel.videoUploadOnPasses configuration option in cypress.json. Turning this off will only compress and upload videos on failures. This only affects projects which are setup to record to the Dashboard. Fixes #460. Contributed by @carlos-granados.Documentation Changes:
Prevent error during verification in the CLI on Linux / OSX. Also makes terminal colors work again. Fixes #717 and #718 .
Released Oct 10, 2017
Bugfixes:
1.0.0 marks our transition out of a private beta and into a public beta. We've lifted all the restrictions for using Cypress. It is now accessible to
Released 10/09/2017
Summary:
1.0.0 marks our transition out of a private beta and into a public beta. We've lifted all the restrictions for using Cypress. It is now accessible to everyone. Until we are out of beta, the Dashboard Service will continue to be free.semver from this point on (and also a bit more rigorously).first-timers-only for those wanting to contribute right away.1.0.0 release.Features:
Misc:
Beta flag everywhere (since we are still technically in beta).arch parameter to the download server so we can build and serve multiple binaries for Windows + Linux.Documentation Changes:
Improved verifying the binary for the first time after an npm install . Fixes #709 .
Released Oct 06, 2017
Nothing published for this version
cypress run now supports a --headed option so the Electron browser will display instead of running headlessly. This matches what you can already do in
Released 09/17/2017
Features:
cypress run now supports a --headed option so the Electron browser will display instead of running headlessly. This matches what you can already do in the GUI. Fixes #657.Bugfixes:
cy.type on Angular 2 apps now works. We're now firing the key property when typing. We've properly mapped all the special keys too.onBeforeLoad now gets invoked when overriding cy.visit. Fixes #656 and #640.cy.visit back to back which only change the hash now properly wait for the hashchange event to occur before moving on. Fixes #652.CYPRESS_BINARY_VERSION on first open. Fixes #659.descendents. It is now correctly spelled as descendants. Fixes #642.position: fixed elements which should be much more accurate. Fixes #631.-h and --help and help as valid commands. Fixes #645.Misc:
config when using Cypress as a node module. Fixes #639.--reporter can now reference an absolute path instead of just relative. Fixes #658.Documentation Changes:
Nothing published for this version
Nothing published for this version
0.20.0 is our biggest technical release ever. It accounts for more than 2,000 commits. It's full of breaking changes we wanted to land prior to having…
Released 09/10/2017
Summary:
0.20.0 is our biggest technical release ever. It accounts for more than 2,000 commits. It's full of breaking changes we wanted to land prior to having our public 1.0.0 release.npm module, and even require it in your node files.CLI Changes:
npm to manage Cypress versions like every other dev dependency.npm install --save-dev cypress will automatically download the CLI + binary.cypress install step, but this command still exists if you want to reinstall the binary for whatever reason.cypress-cli anymore to manage Cypress versions. You will need to uninstall the cypress-cli by running npm uninstall -g cypress-cli.cypress module can be required in your own node projects to programmatically control Cypress the same way you would from the command line.stdout.CYPRESS_VERSION environment variable is gone because now the version of the binary is controlled by the npm module version. If for some reason you want to download the binary of a different version you can use the new CYPRESS_BINARY_VERSION environment variable - but you'll get a warning message when the versions don't match.npm install -g cypress we will warn you that you should check this in as a devDependency but Cypress will continue to work in "global mode".Xvfb failures.--browser option that lets you change the browser that runs from the command line. This works the same way as changing the browser in the GUI, with the exception that any browser other than the default electron browser will not record a video. This is solvable but requires more work.DEBUG=cypress:cli to see debugging output from the CLI.Breaking Changes:
cy.chain() command. You should be able to safely remove this from your code. Fixes #456.Cypress._ to use lodash instead of Underscore. Fixes #548.<option></option>. This may change the content argument required to select the option you intended in your .select() command. Fixes #175.{ force: true } to .click() and .type(), we no longer attempt to scroll the element into view. We've also disabled the check that the element is in view before clicking or typing. Fixes #553 and #537.Cypress.Dom has been renamed to Cypress.dom.Cypress.Log.command has been renamed to Cypress.log.chai-jQuery assertions no longer change the subject when using prop, attr, and css with the 3rd argument (which acts as equality check). Fixes #605.cy is returned from a test or command function. Fixes #463.cy.then() will now only pass its subject through when its callback function returns undefined. Previous it would pass the subject on null values as well.cy.contains() can no longer be chained on subjects which aren't window, document or element. This brings it into parity with the new custom command rules and makes it much less "magical". It enforces you to use it in a much clearer way when querying the entire document.Cypress.addParentCommand(), Cypress.addChildCommand(), and Cypress.addDualCommand() in favor of the new custom command interface.Features:
chai-jQuery assertions have improved error messaging, and have had their internal double assertions removed, and can now be made on raw DOM objects. Fixes #605.chai-jQuery assertions now throw a nice error message when you're asserting on a non DOM object. Fixes #604..trigger() command. Useful for triggering arbitrary events. Fixes #406.cy.scrollTo() command. Useful for having a container scroll to a specific position. Fixes #497 & #313..scrollIntoView() command. Useful for scrolling an element into view. Fixes #498 & #313 & #519..trigger() command. See our new recipe for details on how. Fixes #287..trigger() command. See our new recipe for details on how. Fixes #386..click() command to accept more position arguments. Fixes #499.date, time, month, and week. Fixes #27.cypress run as --browser <browser name>. This enables you to run the same set of browsers when running from the CLI as when you're running from the GUI. Fixes #462 and #531.cypress open no longer opens a detached process by default. Instead cypress open now accepts a new flag --detached, which replicates this behavior. Fixes #531.cypress npm package now checks the currently installed version on install and run and does not re-install Cypress if it is already installed. Fixes #396.Cypress.Commands interface to handle adding your own custom commands. Fixes #436.Cypress.Commands.overwrite. <OPEN A NEW ISSUE>position: sticky. Fixes #571 and #565.window) when attempting to check an element's actionability. Fixes #569.assert interface now works correctly in your specs. <OPEN AN ISSUE>cy.screenshot() now synchronizes its state with the reporter. This means you should see error messages (on the left side) on automatic screenshot errors.done callback now works properly.window.confirm() calls from your application.Dependencies:
Cypress.Promise (which is Bluebird) from version 2.9.25 to 3.5.0chai from version 1.9.2 to 3.5.0sinon from version 1.x to 3.2.0jQuery" $ from version 2.1.4 to 2.2.4.chai-jQuery and rewrote it from scratch.Deprecations:
cypress-cli npm package has been deprecated. Fixes #316.npm like every other package / dependency in your project. For users not using npm you can manually download new versions of Cypress when they're released. <OPEN A NEW ISSUE>Bugfixes:
cy.route() now matches requests opened with lowercase methods. Fixes #607.before hook was throwing an error. Fixes #80 and #510 and #595.cypress.json file, the dead browser page no longer appears. Fixes #492.type attribute. Fixes #550.type="email" inputs were throwing an error. Fixes #504.type defined in uppercase (input type="TEXT") would throw an error and not type. Fixes #550..clear() and type="number" inputs. Fixes #490.git to install. Fixes #124fixturesFolder to false would throw an error. Fixes #450.Xvfb permissions. More intuitive output is given during install failures. Fixes #330.overflow-y: hidden were falsely passing as "visible". Fixes #563.selectedIndex and selectedOptions on the select. Fixes #554.done callback now works correctly. We've improved mocha's handling of uncaught exceptions and properly associate them to test failures. <OPEN AN ISSUE>cy.viewport() is now synchronized with the UI so that it does not resolve until the DOM has re-rendered using the dimensions.cypress run on a brand new project.Misc:
cy.get() Fixes #564 and #409.state.json. Fixes #512.package.json versioning. Fixes #513.cypress install -d option. Fixes #389.cy.go() now snapshots before and after the navigation event. <OPEN A NEW ISSUE>null out the current subject. This was very unexpected and difficult to debug. Now stale elements or other objects from previous pages are yielded to you.cy.wait() now yields you those XHR's in the order they were requested. Previously it was based on when the responses were returned.null from a .then() will now change the subject to that. Previously returning null would not cause subject changes.window.alert() and window.confirm() now generate a page event in the Command Log (including the message)..log(bool) method to disable their calls from generating a Command Log. Useful when your spies or stubs are called an excessive number of times.cy.wrap() iframe elements and interact with them using Cypress commands. More work needs to be done to "switch into" and back "out of" iframes. But we're getting there.default.js file.index.js and commands.js have had their content updated to point to the custom commands API..focus() and .blur() on cy.window().CYPRESS_DEBUG env option has been removed in favor of the debug module and DEBUG=cypress:* usage.cypress run on a project without a cypress.json now errors instead of scaffolding and running the kitchen sink.Documentation Changes:
Note: we are still updating all of the docs to reflect all the 0.20.0 changes.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed missing dependency for CI.
Released Aug 07, 2015
Bugfixes:
Misc:
Cypress is now able to run all the tests, run in the terminal, and includes support for Linux and CI. Additionally, most of the functionality of he GU
Released Aug 06, 2015
Summary:
Cypress is now able to run all the tests, run in the terminal, and includes support for Linux and CI. Additionally, most of the functionality of he GUI Desktop App can now be accessed through command line arguments.
Because each operating system requires a specific build of Cypress - a new CLI tool has been created which abstracts away these differences and orchestrates the Desktop App regardless of which OS you are running.
This CLI tool is now published on npm , though the documentation still needs to be written.
There is now a download service to access the latest version of Cypress and previous versions.
Cypress aims not only to make it easier to write tests, but after you build a test harness, it will make it easier to dive into failed tests (hat run in CI). This release paves the way for providing after-run results and allowing you to dive into those failures.
Breaking Changes:
Features:
The latest version of Cypress can be downloaded here: http://download.cypress.io/latest .
Cypress can alternatively be downloaded / installed / managed through the CLI utility.
Cypress can now be run through the terminal.
You can now run all of your tests inside of the GUI App.
You can use the CLI tool to run Cypress in CI. The documentation for this needs to be written, but it will be very simple to do. You will probably only have to write 2 lines in your CI scripts to run Cypress.
You can configure CI to use any reporter built into Mocha, and additionally we are adding JUnit XML output (for Jenkins) as a built in default.
You can write your own custom reporter which Cypress can use in CI.
Console output from your apps is suppressed while running in the terminal.
Bugfixes:
Several security problems with projects have been closed in preparation for running in CI.
Extensive memory profiling has been done and Cypress has implemented several strategies for aggressively causing garbage collection. The debugging tools (which walk back in time through DOM snapshots, or access objects from previous tests) could exhaust all available memory in previous versions. This likely never affected most users, but if a user ran 1000's of tests (which have been written in Cypress) it would bomb. Now Cypress only stores data for up to 50 tests, and will begin purging data past that. When run in the terminal, Cypress doesn't apply any of its debugging tools, so CI will be unaffected.
Several instances of memory leaks were plugged up.
Misc:
Everything except for the cypress driver is now minified.
Some users have reported problems upgrading previous versions. This is because we changed the name from "cypress" to "Cypress" including some binaries. If your upgrade does not finish you can redownload the latest version of Cypress or use the CLI tool to reinstall it.
Our build and testing processes have been upgraded to accommodate Linux builds.
Sinon.JS object formatting during errors has been suppressed (when using spies/stubs) due to its horrendous performance when comparing deeply nested objects. This means you won't see the (mostly) useless error output from Sinon, but given Cypress debugging tools you can still inspect objects and figure out what went wrong.
Deprecated Cypress.command , instead use Cypress.Log.command to output a Command Log. Updated scaffolding on new projects to reflect this change.
Released Jul 03, 2015
Features:
Bugfixes:
The scaffolded spec_helper.js now correctly returns its object literal in the onConsole callback.
.type() now correctly logs its message to the Command Log when provided options.
.type() has been upgraded to handle situations where as it's typing, 3rd party code mutates the value either synchronously or asynchronously. The caret is automatically moved to the end position matching browser behavior.
Misc:
Deprecated Cypress.command , instead use Cypress.Log.command to output a Command Log. Updated scaffolding on new projects to reflect this change.
cy.contains() now outputs much more explicit error messages when given command options. Fixes #49 .
cy.route() no longer validates response value when {respond: false} is passed in as options. Fixes #48 .
.invoke() and .its() will now log out the $el if it's a DOM object, which will now correctly highlight the $el during a command revert. Additionally if these commands have been called on a DOM object, their onConsole message will include the DOM objects.
cy.viewport() is a new command which will resize the viewport to a specified width and height. There is ow a default viewport size of 1000x660 .
Released Jul 02, 2015
Summary:
Features:
Your application's viewport dimensions will now automatically scale to fit regardless of your screen's size. This enables you to test resolutions larger than what your screen is capable of displaying. Additionally this fixes edge cases caused when there was a difference in viewports between users.
The viewport's dimensions will now dynamically display accurately as they are changed in the header area.
The viewport's scale will now dynamically display accurately as it is changed.
Each command will automatically restore the viewport to the dimensions at the time the command was issued. In other words, scrolling over each command will restore exactly what Cypress "saw" when it issued the command.
Several common viewport presets have been added for convenience.
Misc:
Bugfixes:
Misc:
Nothing published for this version
.select() will now fire a focus event on the even if the window isn't in focus.
Released Jun 30, 2015
Bugfixes:
.select() will now fire a focus event on the <select> even if the window isn't in focus.
.click() has been upgraded to be more intelligent about firing focus events, and now takes into account the previously focused element.
.type() and .clear() will not issue change events or focus events unnecessary when chaining together multiple actions which do not change the element or cause it to lose focus. Fixes #47 .
.type() now implements all DOM events to simulate every aspect of typing on a real keyboard.
Released 06/26/2015
Summary:
Features:
console.table of every key typed, the charCode, all vents that fired, and whether any were preventedDefault.{selectall}, {del}, {backspace}, {esc}, {{}, {enter}, {leftarrow}, {rightarrow}.cursor and selection and range accurately like a real keyboard.{enter} is used.textInput and input events exactly like a real browser. Fixes #7.preventingDefault on any event that would insert a character such as keydown, keypress, textInput.100% identical to real browser KeyboardEvents including charCode, which, keyCode, data, etc.10ms between each keystroke to simulate a real user typing.input events are now correctly fired when .select() chooses an <option>.change events are now fired exactly how a browser does (when an input loses focus and its value has changed since its last focus event). You'll see these fire after you use .blur() directly, or use another action command on another element.Bugfixes:
input[type=number] will no longer prepend the value. Fixes #26.[contenteditable] elements can now be focused and blurred.aborting during .click() / .dblclick() now correctly cancels remaining queued click/dblclick events.Misc:
.click() now takes into account being covered by a fixed positioned element and will increase the window's scroll offset to account for this. There ar
Released Jun 19, 2015
Bugfixes:
.click() now takes into account being covered by a fixed positioned element and will increase the window's scroll offset to account for this. There are still more improvements to be made before this is bulletproof though.
cy.contains() could potentially resolve to a null subject if the matching content was split across multiple nested children elements. This has been fixed and contains will now return the first, deepest element which contains text potentially spread over multiple text nodes and/or children elements.
Attempting to .click() a select element will now throw an error. The error guides you to using the .select() command, as that is the command you shoul
Released Jun 18, 2015
Misc:
Attempting to .click() a select element will now throw an error. The error guides you to using the .select() command, as that is the command you should use to change a <select> value.
cy.route() responses are now validated. If responses are null or undefined Cypress will throw a very specific error message.
Cypress will now display cypress.json parse errors when attempting to boot a project when there is a syntax error in cypress.json .
.select() will now output a command log.
Released Jun 17, 2015
Features:
.select() will now output a command log.
.select() will now have click / focus events fired on itself and the selected options (as per the pec).
.select() is now inline with the other Action commands and will retry until the element naturally becomes selectable.
Bugfixes:
Action command options are now properly formatted, instead of saying Object{4} they will display the overridden default options - ie: force , timeout , interval .
Sending {force: true} to Action commands will no longer error out if the element is not visible. Forcing the action to take place now correctly removes all error checking prior to issuing the action and events.
Misc:
Removed factoring in the total time a test has been running when determining when its command timeout. This fixes a bug where commands down he chain w
Released Jun 17, 2015
Bugfixes:
DOM commands which can retry now correctly support {timeout: num} options which will raise the timeout beyond the standard commandTimeout rom cypress.
Released 06/16/2015
Bugfixes:
{timeout: num} options which will raise the timeout beyond the standard commandTimeout rom cypress.json.<script>, <img>, <video> commands or any other element which supports crossorigin attribute now are proxied correctly. The crossorigin attribute removes sending cookies with the HTTP request and now there is a fallback to figure out the remoteHost even in this situation.Misc:
303.Cypress now has first class support for fixtures (official docs coming soon).
Released 06/15/2015
Features:
fixtures (official docs coming soon).json, js, and coffee files with image support coming soon.fixture: or fx: keyword which automatically loads the fixture as the response.Bugfixes:
Misc:
bluebird to 2.9.27.glob to 5.0.10.Pushstate application routing now works 100% reliably with NO hacky overrides in all browsers.
Released May 14, 2015
Features:
Pushstate application routing now works 100% reliably with NO hacky overrides in all browsers.
All incompatible a / link / form elements are transparently rewritten to be compatible including FQDN and protocol-less href / src .
Cookies are automatically cleared between page refreshes, during app startup, and leaving the test page.
3rd Party cookies are now additionally cleared. All cookies are now accessible to the client in preparation for cy.clearCookies() .
Manual navigation after tests run now works reliably.
Navigating between full page refreshes during tests now works reliably.
Bugfixes:
Server-side redirects are now completely transparently handled and supported.
URLs are no longer altered in any weird way.
Problematic headers are now automatically stripped from remote responses.
3rd party headers are now properly proxied onto all responses.
Custom headers and other headers "of interest" are rewritten for transparent compatibility.
gzip compression now handled and proxied correctly.
Misc:
Completely overhauled the URL and proxy system used to serve remote applications.
Drastically simplified the architecture required for proxying.
Improved reliability for displaying the remote url.
Namespaced all cypress internal routes.
Many internal development / debugging processes improved.
Added 100+ new tests surrounding serving remote content and processing requests.
Renamed all remaining old references to eclectus .
All responses are now streamed using content-encoding: chunked .
Fixed missing files from deployment. Added tests around this.
Released Apr 17, 2015
Bugfixes:
Updated dependencies: bluebird , fs-extra , sinon-as-promised .
Released Apr 16, 2015
Misc:
Updated dependencies: bluebird , fs-extra , sinon-as-promised .
Updated nw to 0.12.1 .
Released Apr 15, 2015 Misc: - Snapshot source code.
Released Apr 15, 2015
Misc:
sinon-as-promised is now a bundled extension.
Released 04/02/2015
Features:
sinon-as-promised is now a bundled extension.id now run (with a random temporarily assigned id).id to another test will now run (with a random temporarily assigned id).Bugfixes:
grep was set.cy command and had a done callback was always undefined. Now it's back to real mocha function done(err).hook.ctx.currentTest to the wrong test. Mocha Issue..only on a large list of tests that would sometimes not clear the previous runnables in the UI.Misc:
Cypress events for 3rd party custom handling.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →