chore(deps): update dependency @cypress/react to v8
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
@cypress/react (source) | devDependencies | major | ^5.12.5 -> ^8.0.2 |
Release Notes
cypress-io/cypress (@cypress/react)
v8.0.2
v8.0.1
v8.0.0
: 8.0.0
Released 07/19/2021
Summary:
We've made some updates to ensure a consistent run experience across browsers.
Now all browsers run via cypress run
run headlessly, with a device pixel ratio
of 1, and a screen size of 1280x720 by default.
Breaking Changes:
Please read our Migration Guide which explains the changes in more detail and how to change your code to migrate to Cypress 8.0.
- When running
cypress run
previous to 8.0, some browsers would launch headed while others were launched headless by default. Cypress now runs all browsers duringcypress run
as headless by default. Addresses #16832. - The default screen size when running a headless browser has been reverted back to 1280x720 pixels (pre 7.0 behavior). Addresses #16853.
- When running the
--headless
Chrome browser viacypress run
, the device pixel ratio will now be 1 by default, matching the behavior of all other browsers. This behavior can be overridden through the browser launch API. Addresses #17375. - Cypress now enforces version checks for browser launching and will error
during
cypress run
and not allow opening the browser incypress open
when attempting to open unsupported browser versions. Cypress supports Chrome >= 64, Firefox >= 86, and Edge >= 79. Addressed in #17355. - Arguments returned from a chained function will no longer incorrectly be of
type
jQuery
and instead have anany
type. Fixes #16669. - The
Cypress.ConfigOptions
,Cypress.ResolvedConfigOptions
andCypress.RuntimeConfigOption
types have been updated so thatConfigOptions
match the JSON schema. Addressed in #17251.
Features:
- You can now configure certificate authority (CA) and client certificates to
use within tests on a per-URL basis via a
clientCertificates
configuration option. See Client certificates for more detail. - Setting the environment variable
ELECTRON_RUN_AS_NODE
now starts Cypress as a normal Node.js process rather than an Electron process. See Running headless tests without Xvfb for more details. Addresses #16505.
Bugfixes:
-
console.log
andconsole.error
called within the plugins file will now be captured in thestdout
sent to the Cypress Dashboard, making it visible in Output logs in the Dashboard. Fixes #7434. - There are several fixes for
cy.intercept()
including: - When using the experimental Cypress Studio, there should be a reduced occurrence of "Studio failed to save commands" error messages. Fixes #14767.
-
cy.invoke()
now retains the properthis
context on nested object methods. Fixes #3871. - We no longer trigger unnecessary snapshot re-renders when hovering over the Command Log. Fixes #17257.
v7.0.3
v7.0.2
v7.0.1
: 7.0.1
Released 04/07/2021
Bugfixes:
- Fixed a regression in 7.0.0 that caused the test runner not to check for updates. Fixes #15829.
- The component testing spec list search input no longer throws an exception when hitting
Enter
. Addressed in #15833. - The preferred file opener modal no longer appears behind the command log. Addressed in #15831.
- Cypress no longer crashes in certain circumstances when running in Docker without
--ipc=host
. Fixes #15814 and #350. - Node.js warnings are no longer incorrectly printed to
stderr
in production builds of Cypress. Addressed in #15817. - Cypress no longer prints a warning to
stdout
when the video cannot be found after a run. Addressed in #15828. - A warning is no longer displayed when running a TypeScript spec without a
tsconfig.json
file present. Addressed in #15828.
Misc:
- The "New Spec File" in the Desktop GUI has a less pronounced style. Addressed in #15835.
v7.0.0
: 7.0.0
Released 04/05/2021
Summary:
Breaking Changes:
Please read our Migration Guide which explains the changes in more detail and how to change your code to migrate to Cypress 7.0.
- We introduced several breaking changes to cy.intercept(). See the cy.intercept() docs for full usage examples. Breaking changes:
- Request handlers supplied to
cy.intercept()
are now matched starting with the most recently defined request interceptor. This allows users to override request handlers by callingcy.intercept()
again. This matches the previous behavior that was default incy.route()
. Addresses #9302. -
cy.intercept()
now automatically parses more JSON MIME types, including 'application/vnd.api+json'. You can now removeJSON.parse(req.body)
orJSON.parse(res.body)
from some tests that previously required it. Addresses #14763. - Falsy values (with the exception of
undefined
) supplied as the body of aStaticResponse
tocy.intercept()
will now be JSONified and sent as the body. Previously, an empty string was sent instead. Addresses #15234 and #14205. - The
matchUrlAgainstPath
RouteMatcher
property has been removed fromcy.intercept()
. - The "substring match" from
cy.intercept()
URL matching has been removed. Previously, a URL would match if it contained the supplied string anywhere. Now, the URL (including querystring) only matches if it is an equality match or a minimatch. - The
delay
option for StaticResponses used withcy.intercept()
has been removed. Please go back to using thedelayMS
option. Addresses #15255. -
cy.route2()
was previously aliased tocy.intercept()
. Now the aliascy.route2()
has been removed. Please update usage ofcy.route2()
tocy.intercept()
. Addressed in #14709.
- Request handlers supplied to
- Component tests have been migrated to use a dedicated test runner and are bundled differently. See the Migration Guide for full examples on how to migrate. Addressed in #14479.
- Component tests will not be executed when running
cypress open
orcypress run
. Now, they need to be executed by runningcypress open-ct
orcypress run-ct
. Addressed in #15701. -
experimentalComponentTesting
must be removed from yoru configuration file,cypress.json
by default, or it will throw an error. Addressed in #15701. - The
file:preprocessor
event is no longer used to compile component tests. Now, adev-server:start
event must be registered.
- Component tests will not be executed when running
- Cypress now catches uncaught errors and fails the test even if the application under test has defined
window.onerror
. Addresses #8802. - Cypress now fails tests if there is an unhandled promise rejection in the application under test. Unhandled rejections will trigger the
uncaught:exception
event with the promise as the third argument. Addresses #243. - Cypress now throws an error if the application under test redirects more than 20 times. The number of times allowed to redirect is configurable via the
redirectionLimit
config. Addresses #14445. - The default preprocessor now targets a more modern version of ECMAScript. Addressed in #15274.
- We now enable
contextIsolation
by default in the Electron browser. You can override this option if needed within thebefore:browser:launch
API. Addressed in #15493. -
Cypress.moment()
has been removed. Please migrate to a different datetime formatter. See our recipe for example replacements. Addresses #8714. - The bundled Node.js version was upgraded from
12.18.3
to14.16.0
. This could change the behavior of code within thepluginsFile
when using the bundled Node.js version of Cypress. Addressed in #15292. - Installing Cypress on your system now requires Node.js 12+. Addresses #9545.
- The default headless browser window size has been increased to 1920x1080 pixels to capture High-definition videos and screenshots. Addresses #15752, #15730, and #15481.
Features:
- A command log entry is now displayed when there is an uncaught exception or unhandled rejection. Addresses #8236.
- We added several features to cy.intercept(). See the cy.intercept() docs for full usage examples. Addressed in #14543. New features:
- There are new events on the req object for
cy.intercept()
includingbefore:response
,response
, andafter:response
. - Response handlers (supplied via event handlers or via
req.continue(cb)
) supplied tocy.intercept()
will be called in reverse order untilres.send
is called or until there are no more response handlers. - A new option,
middleware
, has been added to theRouteMatcher
type. If true, the supplied request handler will be called before any non-middleware request handlers. - A new function,
req.continue(cb)
, is available on request objects yielded bycy.intercept()
. It is functionally the same asreq.reply(cb)
- the request will stop propagating to other event handlers, will be sent outgoing, and the response will be handled by cb. -
cy.intercept()
can now be called with a new overload:cy.intercept(url, routeMatcher, handler)
.routeMatcher
will be merged withurl
, and the handler is required.
- There are new events on the req object for
-
cy.visit()
can now visit pages withapplication/xhtml*
content-type. Addresses #15738. - You can now pass runner specific configuration in order to pass different configuration values to
component
tests versuse2e
tests. Addressed in #15526. - There's a new keyboard shortcut (
ctrl/cmd + f
) to search spec files in the Test Runner based on your OS. Addresses #6229. - You can now create a new spec file directly from the Test Runner in the Desktop. Addressed in #15335.
-
cy.tick()
now accepts alog
option. Addresses #15180. - The Cypress proxy now adds a
keep-alive
header to all proxy responses. Addressed in #15292 - Cypress no longer forces specific
NODE_OPTIONS
. Addressed in #15292
Bugfixes:
- The
response.body
ofcy.intercept()
is now correct after stubbing a response usingres.send({ fixture })
in areq.continue
callback or abefore:response
orresponse
handler. Addressed in #14543. - Fixed an issue where only the first matching alias for a route would yield a response object on
cy.wait()
. Fixes #14522. -
.click()
will no longer fail with "coordsHistory must be at least 2 sets of coords" when specifying{ multiple: true }
. Fixes #3738. - Cypress now checks visibility correctly when an element has CSS "position: sticky". Fixes #14938.
- After selecting a project in global mode and clicking the back button, Cypress will no longer crash. Fixes #15089.
- Errors
Refused to apply style
are gone from the console inopen-ct
during Component Testing. Addressed in #15661. - Some memory leaks were fixed in
@cypress/vue
. Addressed in #15275.
Misc:
- The types for
set-cookie
allowstring[]
, so the header's type has been changed to reflect this. Addresses #15419. - The type definition for
cy.writeFile()
now allows 4 arguments. Addresses #15353. -
.then()
will show the correct type when raw HTMLElements are provided. Addresses #14875 - The Cypress Studio icon now displays properly for tests with long titles. Addresses #15182.
- There were some minor improvements made to the UI when setting up a project in the Test Runner. Addressed in #15665.
Dependency Updates
- Upgraded Chrome browser version used during
cypress run
and when selecting Electron browser incypress open
from87
to89
. Addressed in #15292. - Upgraded bundled Node.js version from
12.18.3
to14.16.0
. Addressed in #15292. - Upgraded
electron
from11.3.0
to12.0.0
. Addressed in #15292.
v6.2.1
: 6.2.1
Released 1/4/2021
Bugfixes:
- Test retries, when retrying on several failed tests, will no longer cause hanging during
cypress run
. Fixes #9040. -
multipart/form-data
is no longer wrongly encoded when usingcy.intercept()
. This should preventUnexpected end of multipart data
errors on the back end service where the request was pointing to. Fixes #9359. -
cy.contains()
no longer throws an error when a single quote is used inside its argument when RegExp. Fixes #8626. - Passing
capture: 'runner'
to acy.screenshot()
command inside.within()
now screenshots the entire Test Runner as expected. Fixes #14253. -
Cypress.dom.isJquery()
now always returns a boolean instead ofundefined
sometimes. Fixes #14278. -
calledOnceWith
andcalledOnceWithExactly
sinon matchers no longer throw an error when used within Cypress. Fixes #9644. - We now pass
--disable-backgrounding-occluded-windows
as a default flag to Chrome to prevent backgrounding rendering when the Cypress window is occluded. Fixes #9604.
Misc:
- After login, if a name is undefined on your profile, the Test Runner will show the profile's email and link to instructions to update the name. Addresses #14288.
Dependency Updates:
- Upgraded
devtools-protocol
from0.0.734984
to0.0.839267
. Addressed in #14353. - Upgraded
electron
from11.0.3
to11.1.1
. Addressed in #14352.
v6.2.0
: 6.2.0
Released 12/21/2020
Features:
- You can now listen to
before:run
andafter:run
events in the plugins file. See thebefore:run
andafter:run
docs for more information. Addressed in #14238 and #14263. - You can now listen to
before:spec
andafter:spec
events in the plugins file. See thebefore:spec
andafter:spec
docs for more information. Addressed in #9646 and #14178. - The
Timed out retrying
error message now displays the amount of time Cypress retried. Addresses #5781.
Bugfixes:
- Getting an alias of
cy.intercept()
usingcy.get()
will no longer always yieldnull
. Fixes #9306. -
cy.intercept()
will now automatically responds to CORS preflight requests (HTTPOPTIONS
requests) that match defined routes. Fixes #9599. - Response errors from
forceNetworkError
can now be awaited usingcy.intercept()
andcy.wait()
. Fixes #9062. - Using
cy.log()
inside.then()
no longer breaks the subject value in the command chain. Fixes #8084. - Using
Cypress.Commands.overwrite
to overwrite.then()
now preserves the properthis
context and sets aliases correctly. Fixes #5101. - Using
Cypress.Commands.overwrite
to overwritecy.route()
orcy.intercept()
and wait on its alias now properly works. Fixes #3890 and #9580. - Cypress no longer fails to find specs if you set the fixtures folder to be the same as the integration folder. Fixes #14226.
- Cypress no longer fails to show error code frames if the spec filename has a space in it, fixes #7553.
Misc:
-
scrollBehavior
is now an allowed type when passed as test configuration. Addresses #9643. - The
FileObject
type for the file argument of thefile:preprocessor
event now includes theEventEmitter
type. Addresses #9276.
Dependency Updates:
- Upgraded
electron
from11.0.2
to11.0.3
. Addressed in #9409.
v6.1.1
v6.1.0
: 6.1.0
Released 12/07/2020
Features:
- There's a new
scrollBehavior
configuration option that controls the viewport position when an element is scrolled prior to action commands. Possible values are'top'
,'bottom'
,'center'
,'nearest'
, andfalse
, with'top'
being the default.scrollBehavior: false
disables scrolling altogether.scrollBehavior
can be specified in global configuration, test configuration or individual action commands viaoptions
. Addresses #871 and #4356. - The Tests tab in the Test Runner now orders folders before files. This matches the ordering of most IDEs' file explorers. Addresses #7334.
Bugfixes:
- Responses stubbed from
cy.intercept()
will now automatically setAccess-Control-Allow-Origin
andAccess-Control-Allow-Credentials
to permissive values unless explicitly overridden. Fixes #9264. - The
Cannot read property "fireChangeEvent" of undefined
error will no longer throw during a race condition when usingcy.intercept()
. https://github.com/cypress-io/cypress/issues/9170 - HTTP responses that cannot have a body (like HTTP 304 and HTTP 204) can now be awaited using
cy.intercept()
. Fixes #8934 and #8999. - We fixed an issue where HTTP redirects could not be awaited using
cy.intercept()
unless dynamically intercepted. Addressed in #9097. - Tests will no longer hang in certain situations when there's an error in a
before()
hook. Fixes #9162. - We no longer strip
/
from URLs when they are explicitly passed with query paramaters. Fixes #9360. - Fixed the regression in
Cypress.dom.isVisible
behavior for elements withposition: fixed
, addresses #8998 and #9031.
Deprecations:
Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations.
-
Cypress.moment
has been deprecated and will be replaced in a future release. Consider migrating to a different datetime formatter. Addresses #8714.
Misc:
- We collect more environment variables from Bitbucket to better detect reruns. Addresses #9309.
-
waitForAnimations
andanimationDistanceThreshold
types are now included for all actionable commands. Addresses #8854.
Dependency Updates:
- Upgraded
mocha-junit-reporter
from1.23.1
to2.0.0
. Addressed in #9528.
v6.0.0
: 6.0.0
Released 11/23/2020
Summary:
Cypress now offers full network stubbing support with the introduction of the cy.intercept()
command (previously cy.route2()
). With cy.intercept()
your tests can intercept, modify and wait on any type of HTTP request originating from your app.
Breaking Changes:
Please read our Migration Guide which explains the changes in more detail and how to change your code to migrate to Cypress 6.0.
- Cypress now always throws an error when asserting on an element that doesn't exist in the DOM (unless you're asserting that the element should
not.exist
). Assertions such asnot.visible
,not.contains
,not.have.class
, etc will now fail when used on non-existent DOM elements. Addresses #205. - DOM elements where the CSS style (or ancestors) are
opacity: 0
are no longer considered visible. However these are still considered actionable and "any action commands" interacting-with-elements#Actionability used to interact with the element will perform the action. This matches browser's implementation on how they regard elements withopacity: 0
. Addresses #4474. - The type yielded by
cy.wait(alias)
has changed in order to support use ofcy.intercept()
. Addressed in #9266. - The
experimentalNetworkStubbing
option has been removed and made the default behavior. You can safely removed this configuration option. Addressed in #9185. - When using
.type()
and.click()
on elements inside acontenteditable
element, the events are now properly triggered on the inside elements. This may cause unintended consequences if you were relying on the previous behavior. Addressed in #9066. - We removed several deprecation errors around APIs that were removed in versions of Cypress prior to 4.0.0. This will not cause any changes for anyone upgrading from a 4.0+ version of Cypress. For a full list of all APIs affected see #8946.
- We updated our HTTP status codes and reason phrases to match Node.js
http.STATUS_CODES
. If you have code that relies on a reason phrase, then this could affect you. Addressed in #8969. - JSON request and response bodies captured by
cy.intercept()
are now automatically parsed, removing the need to manually doJSON.parse
. Addressed in #9280.
Deprecations:
Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations.
-
cy.server()
andcy.route()
have been deprecated. In a future release, support forcy.server()
andcy.route()
will be moved to a plugin. We encourage you to usecy.intercept()
instead. Addressed in #9185. -
experimentalFetchPolyfill
has been deprecated. We encourage you to usecy.intercept()
to intercept requests using the Fetch API instead. -
cy.route2()
was renamed tocy.intercept()
. We encourage you to update usages ofcy.route2()
to usecy.intercept()
. Addressed in #9182.
Features:
- The new
cy.intercept()
command can be used to manage the behavior of HTTP requests at the network layer. Addressed in #9182. - We now pass
—disable-dev-shm-usage
to the Chrome browser flags by default. This will write shared memory files into/tmp
instead of/dev/shm
. If you're passing this flag in yourplugins
file, you can now remove this code. Addresses #5336. - A warning is now displayed when passing invalid configuration keys through the CLI. Addresses #428.
- The
cypress version
command now also displays the current Electron and bundled Node versions. Addresses #9180. - The
cypress version
command now accepts a--component
flag that allows you to print the version of specific components of Cypress. ie Electron, Node, etc. Addresses #9214.
Bugfixes:
- We fixed a regression introduced in 3.5.0 that would cause
.type()
to not type the entire string when focus was called away from the target element. Fixes #9254. -
.type()
and.click()
now properly work on elements inside acontenteditable
element. Fixes #2717 and #7721. - We fixed a regression introduced in 5.6.0 that would cause the Test Runner to crashes and display a white page when switching tabs while tests are running. Fixes #9151.
- Fixed an issue where
Content-Length
forcy.route2
request bodies could be incorrectly recalculated. Fixes #9166.
Documentation Changes:
- Our Migration Guide has a new section for 6.0 migration.
- Many of our docs examples have been updated to use
cy.intercept()
in place ofcy.route()
including our Network Requests doc.
Misc:
- Added the type of
redirects
and changedredirectedToUrl
optional for Response types. Addresses #9275.
Dependency Updates
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.