Commit Graph

1573 Commits

Author SHA1 Message Date
Ryan Manuel
81aee0e184 Merge branch 'develop' into release/14.0.0 2024-10-22 08:22:25 -05:00
Ryan Manuel
4ba72c94aa fix: ensure that requests to the same resource will be properly intercepted even if they are sent in rapid succession (#30435)
* fix: ensure that requests to the same resource will be properly intercepted even if they are sent in rapid succession - run ci

* add changelog

* Update packages/net-stubbing/lib/server/middleware/request.ts

* PR comments
2024-10-22 08:21:44 -05:00
Ryan Manuel
23904b63d3 chore: merge develop 2024-10-18 13:13:40 -05:00
Bill Glesias
0e316966af misc: implement webdriver on top of geckodriver in order to reduce overhead maintenance and code (#30324)
* misc: implement webdriver npm package as the client for the webdriver specification

* misc: go back to xulstore to save browser preferences [run ci]

* add changelog [run ci]

* chore: fix screenshot resolution [run ci]

* fix check-ts issues [run ci]

* run windows ci [run ci]

* run ci

* add comments [run ci]

* build binaries for webdriver impl [run ci]

* fix Cypress namespace missing issue. see 6d7ba97c25

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* patch edgedriver and preserve dependency paths for webdriver so they are included in the binary [run ci]

* fix issues with firefox profile not being created in open mode when old profile exists from previous cypress versions where they are no longer compatible [run ci]

* address comments that came up in review [run ci]

* see if this fixes extension test [run ci]

* make sure process kill emits the exit event [run ci]

* update geckodriver to include contribution patch to types [run ci]

* fix misapplication of geckodriver package (accidentally deleted) [run ci]

* empty commit to trigger ci [run ci]

* address comments from code review [run ci]

---------

Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
2024-10-15 11:18:14 -04:00
Jennifer Shehane
6d250106cc Merge branch 'develop' into release/14.0.0 2024-10-10 10:49:36 -04:00
Ryan Manuel
04c1e8c90b fix: ensure that find-process does not error out due to a bad regex (#30380)
* fix: ensure that find-process does not error out due to a bad regex

* add changelog

* fix patch

* add a test

* add comment

* update comment

* blank

* blank
2024-10-10 09:15:40 -05:00
Jennifer Shehane
93e53837a4 breaking: remove log:memory:pressure and firefox:force:gc APIs (#30331)
* remove foxdriver and force:gc/log:memory:pressure APIs

* Add changelog entry

* remove patched foxdriver file

* define types/spec FoundSpec without ref to Cypress namespace

* args

* chore: update unit test to still throw firefox cannot connect error if CDP fails to connect instead of the rtrying socket, which is no longer used when connecting to firefox

* Remove firefox-memory system test

---------

Co-authored-by: Cacie Prins <cacie@cypress.io>
Co-authored-by: AtofStryker <bglesias@gmail.com>
2024-10-03 15:11:36 -04:00
Jennifer Shehane
f27eddb34c Merge branch 'develop' into release/14.0.0 2024-10-02 13:34:48 -04:00
renovate[bot]
619a9ab511 dependency: update dependency simple-git to v3.25.0 (#30076)
* empty commit

* fix(deps): update dependency simple-git to v3.25.0

* cli entry

* yarnlock

* mock out simple-git for failing unit tests

* fix yarn lock merge

* changelog

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cacie Prins <cacie@cypress.io>
2024-10-02 10:02:22 -04:00
Jennifer Shehane
cb7b33b3f3 Merge branch 'release/14.0.0' of https://github.com/cypress-io/cypress into release/14.0.0 2024-10-01 11:31:53 -04:00
Jennifer Shehane
2511e0031b Merge branch 'develop' into release/14.0.0 2024-10-01 11:31:39 -04:00
Jennifer Shehane
dab5047756 breaking: Remove support for Node.js 16, Node.js 21, and glibc < 2.28 (#30307)
* Update minimum node engines

BREAKING CHANGE: Remove Node.js 16 and Node.js 21 support

* update changelog

* change entry to addresses

* trigger publish-binary pipeline on appropriate branch

* remove better-sqlite code

* Update changelog

* changelog
2024-10-01 11:30:13 -04:00
Ryan Manuel
8cff95661a misc: pass spec to beforeSpec to support better reporting on client side protocol errors (#30316)
* feat: pass spec to beforeSpec to support better reporting on client side protocol errors

* Update packages/types/src/protocol.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* update changelog

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2024-09-30 16:55:13 -05:00
Jennifer Shehane
d1b3c938b7 Merge branch 'develop' into release/14.0.0 2024-09-30 14:42:18 -04:00
Bill Glesias
af3839d990 misc: replace marionette-client with geckodriver as b2g marionette client is no longer supported (#30250)
* misc: replace marionette-client with geckodriver as b2g marionette client is no longer supported [run ci]

* install pump [run ci]

* refactor to have geckodriver launch the browser and split out webdriver to own class [run ci]

fix other failing tests [run ci]

fix other failing tests [run ci]

pass env variables to firefox

* fix sigkill / treekill issues on windows with firefox binary being a dangling process [run ci]

* fix issue where browser in headed mode was not starting maximized [run ci]

* stub firefox_spec added deps different to get type inference

* add comment to geckodriver patch

* move capabilities to verbose debug statement

* update changelog

* address comments from code review

* add pending for changelog

* update with suggestions from code review

* remove debug enable as the process needs to be bound to stderr and stdout

* add comment on why we need to bind

* add comments from code review

* address comments from code review

* make sure sessionId is set
2024-09-30 12:19:03 -04:00
Jennifer Shehane
04eab8ac2a init changelog 2024-09-27 09:24:02 -04:00
Matt Schile
0d2248c96e chore: release 13.15.0 (#30292) 2024-09-25 13:16:19 -04:00
Jennifer Shehane
8d71cc4526 chore: Update changelog to 'addresses' rather than addressed in (#30275) 2024-09-25 12:53:26 -04:00
Cacie Prins
1d845323d4 feat: Improve UX when Test Replay upload fails due to slow upload (#30235)
* new error message for stream stall upload failures

* new unknown error msg, extract printProtocolUploadError for testing, consolidatd args for stream stall msg

* rename env more appropriately, add sampling interval param to putProtocolArtifact

* default to 5000, override with app capture protocol value, override that with env var

* update snapshots

* fix math in upload stall error msg

* changelog

* update gql schema w/ new error msg, fix protocol tscheck

* update test to use fn for app capture supplied interval

* increase default stream stall interval to 10 seconds

* typos

* snapshots

* rename env var

* do not use user-supplied interval if it parses to NaN

* use the more standard makeErr for unknown/uncategorized upload error in visual snapshots

* rearrange upload stall error message

* fix typo

* changelog

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-09-25 11:39:28 -05:00
Jennifer Shehane
3ff88b7d98 chore: Fix double bugfixes headings in changelog (#30268)
* Fix double bugfixes headings in changelog

* empty commit
2024-09-23 10:41:30 -04:00
renovate[bot]
1228869198 fix(deps): update dependency launch-editor to v2.9.1 (#30247)
* fix(deps): update dependency launch-editor to v2.9.1

* add changelog entry

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-09-18 12:43:57 -04:00
Bill Glesias
c17d1ffbf3 fix: update chrome to 128 firefox to 130 inside Cypress tests in CircleCI (#30245)
* update docker image to chrome 128 and firefox 130 [run ci]

* fix: fix checkbox click events for firefox 129 and up [run ci]

* Update system-tests/lib/normalizeStdout.ts

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* Update system-tests/lib/normalizeStdout.ts

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-09-17 17:42:44 -04:00
Jennifer Shehane
caab25fe2f dependency: [Snyk] Fix for 4 vulnerabilities (#30241)
* fix: packages/server/package.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-BODYPARSER-7926860
- https://snyk.io/vuln/SNYK-JS-EXPRESS-7926867
- https://snyk.io/vuln/SNYK-JS-SEND-7926862
- https://snyk.io/vuln/SNYK-JS-SERVESTATIC-7926865

* yarn lock

* changelog entry

---------

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-09-17 10:23:16 -04:00
Matt Schile
f3242ea7f3 misc: pass the related command log to the createSnapshot function (#30244)
* passing related log to the createSnapshot function

* update changelog

* update system test snapshot
2024-09-16 14:34:08 -05:00
Jennifer Shehane
0a15c8d2cc dependency: bump @cypress/request to ^3.0.4 (#30194)
* empty commit

* dependency: bump cypress/request

* add changelog entry
2024-09-10 12:29:25 -04:00
Mike McCready
66dd3689c4 dependency: update loader-utils to 1.4.2 (#30159)
* dependency: update loader-utils to 1.4.2

* move changelog to new release

* run ci

* run ci
2024-09-05 15:32:56 -04:00
Bill Glesias
12d8e0bd6e chore: release 13.14.2 (#30182) 2024-09-04 11:12:09 -04:00
Bill Glesias
770a50255f fix: revert HiDPI for Wayland users to resolve unknown issues with GLib-GIO-ERROR and cy.screenshot() timeouts [run ci] (#30179) 2024-09-04 09:47:55 -04:00
Cacie Prins
bbe53286cb fix: WebSocket Connection Closed crashing from BrowserCriClient (#30174)
* catch Fetch.enable errors on extra target in browser CRI

* changelog

* changelog

* changelog

* Update packages/server/test/unit/browsers/browser-cri-client_spec.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* use try/catch instead of .catch for wider unit test support

---------

Co-authored-by: Bill Glesias <bglesias@gmail.com>
2024-09-03 18:25:40 -04:00
Bill Glesias
b2a694fc65 chore: sync changelog with what is on docs.cypress.io and fix broken relative links (#30140) 2024-08-29 12:01:39 -04:00
Bill Glesias
e909c4ab63 chore: release 13.14.1 (#30138) 2024-08-29 11:47:29 -04:00
Bill Glesias
f6e7af954b fix: adds a description for the JIT experiment which was overlooked on initial implementation [run ci] (#30128) 2024-08-28 16:59:45 -04:00
Bill Glesias
34764c34a0 chore: release 13.14.0 (#30115)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-08-27 10:24:33 -04:00
Raymond Greeley
efe577aa66 feat: Passing --browser flag alone will launch after test selection (#28538)
* Add localSettings field to OpenBrowser query

* Add wasBrowserSetInCLI as OpenBrowserList prop

* Emit launch on mount if --browser was passed

* Add entry to cli changelog

* Correct typo in changelog

* Add link to issue addressed

* Add pull request title

* Check if browser is already open before launch

* Moved features section to top of file

* Add reference to PR in changelog

* Correct unintended completion

* Add features to top of changelog

* Change prop name for convention

* Add isValidBrowser

checkes whether a cliBrowser is valid or not and
returns a boolean

* Add isValidBrowser to schema

* Use isValid browser

creates a function launchIfBrowserSetInCli that
will launch the browser if a valid browser flag
was passed to the cli

* Add to changelog.md

* Add global launch count to keep track project launch

* Make global count available to the launchPad

* Add description for globalLaunchCount

* Add globalCounnt to schema

* Remove unused import and remove unused prop

* Use launch function

* Import document and use query

* Add to changelog

* Add to existing features section

* Add to changelog

* Update changelog.md

* Add setter for launchCount and add tests

* Update changelog

* Remove extra bugfix title

* Update changelog

* Update changelog

* Update changelog

* Update changelog

* Update Changelog

* Update changelog

* Update Changelog

* Update changelog

* Fix changelog for line break error

* Update changelog

* Refactor to create single field for launching browser

* Update schema

* Refactor function to make use of single field

* Change launch count in beforeEach hook instead

* Clean up await in function

* Update changelog

* Add additional optional chaining for resiliency

* Use more precise browser launching query to fix silent bug

* Assert that launchProject hasn't been called when browser not found

* Update changelog

* Update cli/CHANGELOG.md

---------

Co-authored-by: Mark Noonan <mark@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-08-27 10:22:40 -04:00
Bill Glesias
5a6b8c49cf fix: Typescript config invalid with node v22.7.0 with ESM (#30099)
* add failing system binary test [run ci]

* fix: leverage the --no-experimental-detect-module when node 22.7.0 and above is detected [run ci]

* Update cli/CHANGELOG.md

* use environment variable to mock stubbing out of typescript install in order to unit test as mocking the module seems near impossible to do correctly given the context [run ci]

* update changelog to include mention of experimental-detect-module

* make sure node version is set before comparing versions

* Revert "update changelog to include mention of experimental-detect-module"

This reverts commit 5ef8ef0e4c.

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-08-27 09:03:41 -04:00
Bill Glesias
50335a0d2b misc: allow HiDPI Screen running wayland to use cypress window/browser [run ci] (#30109) 2024-08-26 15:50:22 -04:00
renovate[bot]
507be6ce1b chore(deps): update babel monorepo (#30073)
* empty commit

* chore(deps): update babel monorepo

* empty commit

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* yarn

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
2024-08-26 14:28:07 -04:00
Bill Glesias
64e4d3103e chore: remove duplicate changelog entries (#30110) 2024-08-26 14:00:38 -04:00
Cacie Prins
ebbf7b1bdc fix: do not use unload events in Chromium from App Runner (#30061)
* correctly determine current browser family from cy config in app event manager

* changelog

* rm unnecessary ts-ignore

* add type declaration to catch improper params to isBrowserFamily

* add check for msMatchesSelector so jquery does not add unload listener in chrome
add check for msMatchesSelector in jquery patch so unload is only added in ie

* run windows workflow on this branch

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-08-23 14:39:39 -04:00
Vladyslav Nosal
06acc2e8d2 feat: Implement correct behavior for all input types supporting arrow up (stepUp) and arrow down (stepDown) (#29678)
* Add changelog entry

* Update check in "_moveCursorUpOrDown" to trigger "stepUp" and "stepDown" on supported input types

* Update "validateTyping" function to validate {upArrow} and {downArrow} arguments for cy.type() for input[type=date]

* Remove "datetime" entry from valid input types

* Update chars validation for inputs that support "stepUp" and "stepDown"

* Add missing input types to dom.html

* Add tests of {upArrow} and {downArrow} for all supporting input types

* Update CHANGELOG

* Fix CHANGELOG line position

* Fix link to issue in CHANGELOG entry

* Fix typo in CHANGELOG

* Fix typo in CHANGELOG entry

* Merge develop

* Update changelog

* Add assertions for {upArrow} and {downArrow} arguments of cy.type() action that check if "change" and "input" events are triggered

* Fix changelog to include ref to issue

* Update packages/driver/cypress/e2e/commands/actions/type.cy.js

* update changelog

* Actually this is a feature release

* Fix test cases that fail on CI environment.

* Fix failing test case in type.cy.js test suite

* Refactor 'type.cy.js' test suite to skip tests for input type "month" and "week" for Webkit and Firefox browsers due to missing support

* add new release to changelog

* Prevent tests for input[type=range] from running on webkit browsers

* Update changelog

* Fix changelog

* Suppress tests for certain types of input when running on Webkit browsers

* Update use of check of webkit browser for consistency

* Update packages/driver/cypress/e2e/commands/actions/type.cy.js

* Update packages/driver/cypress/e2e/commands/actions/type.cy.js

* Update packages/driver/cypress/e2e/commands/actions/type.cy.js

* Update packages/driver/cypress/e2e/commands/actions/type.cy.js

* Update cli/CHANGELOG.md

Fix typo in CHANGELOG header

Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>

---------

Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
2024-08-23 13:27:55 -04:00
Ryan Manuel
052c258391 chore: remove duplicate Features section in changelog (#30094)
* Update CHANGELOG.md

* blank
2024-08-23 09:49:14 -04:00
Bill Glesias
d79c99e324 fix: resolve files outside the project directory to the bundled directory (#30067)
* fix: resolve files outside the project directory to the bundled directory via the directory path difference [run ci]

* update common ancestor code

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-08-22 16:59:33 -04:00
renovate[bot]
699fec50e4 chore(deps): update dependency dtslint to v4.2.1 (#30065)
* empty commit

* chore(deps): update dependency dtslint to v4.2.1

* empty commit

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 16:29:39 -04:00
Matt Schile
1b1a39e9c2 feat: (protocol) setup protocol with projectId and cloud api (#30066) 2024-08-22 09:45:59 -06:00
Bill Glesias
57f6110d29 feat: implement JIT component experiment (#30049)
* feat: implement JIT component experiment [run ci]

* don't update the dev server unnecessarily if the run is cancelled [run ci]

* fix system test flake

* Update cli/types/cypress.d.ts

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* Update system-tests/projects/experimental-JIT/webpack/cypress/support/component-index.html

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* Update system-tests/projects/experimental-JIT/vite/cypress/support/component-index.html

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* chore: ignore node_modules for webpack dev server

* be sure to end span when throwing error

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2024-08-22 10:56:55 -04:00
Josh Ward
482358b824 feat: add CYPRESS_SKIP_VERIFY option to suppress verification (#29836)
* misc: add `CYPRESS_SKIP_VERIFY` option to suppress verification

* Update CHANGELOG.md

* Move changelog entry to feature

* Whoops - features

* Update CHANGELOG.md

* Update cli/lib/tasks/verify.js

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Update cli/lib/tasks/verify.js

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Update cli/lib/tasks/verify.js

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Appease the linter

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2024-08-16 12:45:34 -04:00
Cacie Prins
8b54d3e919 perf: cri client memory leak (#29988)
* Refactor connection logic to cri-connection

CDPConnection class instantiates a persistent event emitter, and creates
a CDP Client instance via connect(). When this client emits a disconnect
event, the CDPConnection will automatically attempt to reconnect, if the
connection was not intentionally closed and the connection is created with
the reconnect flag. It only listens to 'event' and 'disconnect' events itself,
making it easy to unsubscribe from events in the event of a disconnection,
helping ease mental load when considering potential memory leaks.

Because it uses its own persistent event emitter, event listeners added
to the CDPConnection do not need to be re-added when the client reconnects.

The CriClient itself no longer handles reconnection logic: it only reacts to
connection state changes in order to re-send failed commands and enablements
when the CDPConnection restores the CDPClient.

* changelog

* clean up event listeners before reconnecting

* changelog

* changelog

* changelog

* unit tests

* lift out of the remote-interface dir

* complete lift from /remote-interface

* further fix imports

* import

* fix disconnect behavior to make integration test pass

* Update packages/server/test/integration/cdp_spec.ts comment

* fix snapgen

* improve debug

* further debug improvements

* do not attach crash handlers on browser level cri clients, add tests

* adds bindingCalled listeners discretely, rather than relying on 'event', which does not trigger for them

* back out of main `event` listener, use discrete listeners, add integration test for service worker bindingCalled

* Revert "back out of main `event` listener, use discrete listeners, add integration test for service worker bindingCalled"

This reverts commit 4855120d42.

* changelog

* adds integration test for various ways to add cdp event listeners

* note in changelog this is a cypress server fix

* ensure enablement promises resolve after reconnect

* Update cli/CHANGELOG.md

Co-authored-by: Matt Schile <mschile@cypress.io>

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2024-08-16 10:13:54 -04:00
Bill Glesias
9b977a8168 chore: update release date on changelog from 8.13 - 8.14 (#30044) 2024-08-15 09:09:27 -04:00
renovate[bot]
be8952aecf dependency: update dependency detect-port to ^1.6.1 (#30038)
* chore(deps): update dependency detect-port to ^1.6.1

* Add changelog entry

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-08-14 15:50:44 -04:00
Bill Glesias
43271b94f7 chore: release 13.13.3 (#30030) 2024-08-13 13:27:58 -04:00