* Create cy-prompt-development.md
* chore: cy prompt infrastructure (#31748)
* feat: cy prompt infrastructure
* refactor and add tests
* refactor
* rename experimental config
* prompt
* fix test
* Update cy-prompt-development.md
* Update cy-prompt-development.md
* PR comments
* Update packages/server/lib/cloud/api/cy-prompt/get_cy_prompt_bundle.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* PR comments
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix test
* Delete packages/server/lib/cloud/StudioLifecycleManager.ts
* Delete packages/server/test/unit/cloud/StudioLifecycleManager_spec.ts
* chore: add cdp connection to cy prompt (#31806)
* chore: add cdp connection to cy prompt
* minor fix
* fix type build
* try to fix build
* Update packages/server/lib/browsers/browser-cri-client.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update packages/server/lib/browsers/browser-cri-client.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* do not support prompt in firefox or webkit
* rework timing of lifecycle
* refactor
* fix tests
* troubleshooting
* troubleshooting
* fix tests
* additional troubleshooting
* additional troubleshooting
* additional troubleshooting
* attempt to fix build
* add back
* debugging
* debugging
* debugging
* debugging
* clean up
* fix unit tests
* rework
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* chore: create infrastructure to support backend function in cy.prompt (#31803)
* chore: add promptBackend as an additional Cypress-attached function
* Update packages/app/src/runner/event-manager.ts
* update types
* fix types
* fix spacing
* refactor
* additional refactor
* fix type build
* fix build
* refactor
* reword messages
* fix
* debugging
* undo debugging
* PR comment
* fix tests
* fix tests
* fix tests
* fix test
* chore: add watcher for cy-prompt development (#31810)
* chore: add watcher for cy-prompt development
* test caching
* fix types
* chore: turn on beta deployments for cy-prompt
* internal: (cy.prompt) handle errors better in the command definition (#31835)
* internal: (cy.prompt) handle errors better in the command definition
* internal: (cy.prompt) add timeout and handle loading errors more cleanly
* add process environment variable
* clean up test
* update JSDoc
* chore: handle errors (#31854)
* chore: handle errors
* Fix ts, add test
* Fix error title
* Fix ts
* Fix ts
* chores: (cy.prompt) refactor routing to support both app and driver (#31891)
* chore: Share error utils with the cloud (#31887)
* share error utils with cloud
* additional rework
* Fix command, add isOpenMode
* Add / fix test
* fix ts
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* internal: (cy.prompt) add infrastructure to support a Get Code modal (#31904)
* chore: (cy.prompt) add infrastructure to support a Get Code modal
* fix tests
* fix code paths
* Update eject button styles
* handle errors
* update types
* Update packages/server/lib/socket-base.ts
* Fix cy test
* update readme
---------
Co-authored-by: estrada9166 <estrada9166@gmail.com>
* chore: (cy.prompt) refactor getTestsState to take a runnable id (#31965)
* chore: (cy.prompt) refactor getTestsState to take a runnable id
* fix tests
* minor tweak
* chore: (cy.prompt) add manifest for all of the cloud delivered files (#31922)
* chore: (cy.prompt) add manifest for all of the cloud delivered files
* fix tests and remove environment variables
* update strategy
* fix build
* rework
* require manifest
* clean up
* refactor
* refactor
* Update packages/server/lib/cloud/cy-prompt/CyPromptLifecycleManager.ts
Co-authored-by: Matt Schile <mschile@cypress.io>
* fix test
---------
Co-authored-by: Matt Schile <mschile@cypress.io>
* feat: add cy prompt more info needed modal (WIP) (#31970)
* feat: add cy prompt more info needed modal
* Reset promptStore
* additional things exposed for more info
* rework
* fix tests
* fix build
* fix types
* fix types
* Update packages/app/src/runner/event-manager.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* reefactor
* chore: (cy.prompt) rework the file save lifecycle
* rework types
* add unit tests
---------
Co-authored-by: estrada9166 <estrada9166@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: (cy.prompt) ensure that we do not attach a vue ref to the react root in the cy.prompt modals (#32011)
* fix: (studio) ensure that we do not attach a vue ref to the react root in the studio panel
* fix test
* chore: Handle cy-prompt error to the cloud (#32009)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* chore: display prompt error message (#32016)
* add createCloudRequest to cloudApi, handle errors during createCyPromptServer
* render the get code button on failure
* chore: update types
* chore: move CT and browser error to cloud (#32077)
* feat: (cy.prompt) give cy.prompt access to recording information (#32110)
* feat: (cy.prompt) give cy.prompt access to recording information
* undo bad refactor
* undo bad refactor
* undo bad refactor
* rename
* fix typo
* Update packages/server/test/unit/modes/record_spec.js
* Update packages/server/test/unit/modes/record_spec.js
* Update packages/server/test/unit/modes/record_spec.js
* Update packages/server/test/unit/modes/record_spec.js
* Update packages/server/test/unit/modes/record_spec.js
* Update cy-prompt-development.md
* Update cy-prompt-development.md
* Update cy-prompt-development.md
* chore: add CYPRESS_INTERNAL_SIMULATE_OPEN_MODE to simulate running Cypress tests in open mode (#32114)
* chore: (cy.prompt) ensure to strip out paths from all data when reporting errors in prompt (#32134)
* fix: (cy.prompt) ensure to strip out paths from all data when reporting errors in prompt
* refactor
* update tests
* fix logic error with protocol
* add event manager to get code
* Apply suggestions from code review
* fix: (cy.prompt) improve the get project options performance by running promises in parallel (#32196)
* fix: (cy.prompt) improve the get project options performance by running promises in parallel
* add awaits in test
* bump cache
* Update packages/server/lib/cloud/studio/StudioLifecycleManager.ts
* fix build
* chore: cleanup
* blank
* Update trigger-publish-binary-pipeline.js
* Update packages/server/test/unit/socket_spec.js
* get rid of environment variable
* fix: (cy.prompt) ensure to reset the prompt state when the event manager is torn down (indicating that we're no longer on the runner page) (#32301)
* fix: (cy.prompt) ensure to reset the prompt state when the event manager is torn down (indicating that we're no longer on the runner page)
* move test
* fix lint issue
* feat: (cy.prompt) introduce the concept of log collapse state being open/closed by default (#32262)
* feat: (cy.prompt) introduce the concept of logs' collapse state being open/closed by default
* update tests
* rename
* PR comments
* fix test due to bad merge of develop
* chore: Only allow experimentalPromptCommand within e2e config (#32435)
* chore: Only allow experimentalPromptCommand within e2e config
* Fix config
* Update tests
* Update test, update types
* Fix test and types
* fix tests
* Add types
* Update cli/types/cypress.d.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update workflows.yml
* Add optional cyPromptManagerPromise property
* Implement error handling in CyPromptManager
Added a new method to handle errors uniformly in CyPromptManager.
* Fix indentation in socket_spec.js
* fix: (cy.prompt) handle when the prompt is executed by in CT or when the experiment is not enabled (#32470)
* fix: (cy.prompt) handle when the prompt is executed by in CT or when the experiment is not enabled
* Update packages/driver/cypress/e2e/commands/prompt/prompt.cy.ts
* Update packages/driver/cypress/e2e/commands/prompt/prompt.cy.ts
* update name of errors
* Bump cache version to 9-15-2025
* update yarn.lock
* fixes
* fix snapshot
* fix snapshot
* internal: fix get code button to be purple with correct margin (#32504)
* feat: (cy.prompt) update the types of prompt (#32529)
* fix: move currentMoreInfoNeededModalInfo.onCancel to onClose (#32559)
* internal: (cy.prompt) various improvements to error messages and time outs (#32582)
* internal: (cy.prompt) various improvements to error messages and timeouts
* fix test
* remove dead code
* Update packages/driver/src/cy/commands/prompt/index.ts
* update prompt experiment description
* fix build
* fix tests
* fix tests
* fix test
* update error message
* Update packages/server/lib/experiments.ts
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
---------
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
* internal: (cy.prompt) ensure that get code can properly work with prompts in cy.origin (#32596)
* internal: (cy.prompt) ensure that get code can properly work with prompts in cy.origin
* additional tests
* additional tests
* Apply suggestions from code review
* code review comment
* fix merge
* fix merge
* Update packages/data-context/graphql/schemaTypes/index.ts
* update workflow
* blank
* persist binaries
* chore: display custom link title (#32567)
* chore: display custom link title
* Add test
* Pass docs as second argument of the error
* Revert changes
* Use openExternal for links
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* update
* internal: (cy.prompt) do not retry on cert failures (#32624)
* internal: (cy.prompt) do not retry on cert failures
* tests and clean up
* additional cleanup and add error message for prompt
* fix unit tests
* Update report_studio_error.ts
* Update packages/network/lib/agent.ts
* cursor comment
* fix build
* fix build
* fix test
* fix build
* fix build
* fix build
* fix build
* fix build
* revert
* Update packages/driver/src/cypress/error_messages.ts
* Update packages/driver/cypress/e2e/commands/prompt/prompt-initialization-error.cy.ts
* fix build
* cursor comment
* add changelog entry
* clean up
* Update packages/app/src/store/prompt-store.ts
* Bump cache version to 10-3-2025
Updated cache version to trigger CI cache recreation.
* Revise CHANGELOG for new features and fixes
Updated changelog with new features and bug fixes.
* index on feat/cy-prompt: 3cbcf6c336 Bump cache version to 10-3-2025
* index on feat/cy-prompt: 3cbcf6c336 Bump cache version to 10-3-2025
* index on feat/cy-prompt: 3cbcf6c336 Bump cache version to 10-3-2025
* blank
* fix build
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Alejandro Estrada <estrada9166@gmail.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* pass posix exit code to server
* return 1 if any tests fail and posix exit codes are enabled
* changelog
* rm .only
* snapshot
* changelog
* update typedef
* changelog
* Update cli/CHANGELOG.md
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* lift disabled posix system test to different desc block
* add posix-exit-codes in lib/exec/run.ts#processRunOptions
* Apply suggestion from @jennifer-shehane
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* chore: replace dtslint with eslint-plugin-expect-type
* update guide
* add lint-staged
* rm stale script
* modify cli eslint and tsconfigs to support ts migration
* separate expect-type files
* modifications to tsconfigs to make eslint a little easier
* revert workflow.yml
* further revision
* put tslint config for dtslint back in
* ensure false negative case is tested
* correct tsconfigs
* align dtslint tsconfig with eslint 9 config
* consolidate / DRY tsconfigs
* feat: extend Cypress.Keyboard.Keys and cy.press to support all keyboard keys
* Update cli/types/cypress.d.ts
* reference urls for codepoints
* type defs for expanded keys; tests
* changelog
* rm modifier keys temporarily - see WIP @ feat/key-press-modifier-keys
* Add pr link to changelog
* reduce repetition with key codes; remove unsupported capslock keycode
* only "key" special function keys in Cypress.Keyboard.Keys - otherwise, support any single character even if multiple codepoints
* do not refocus on f6 - f6 behavior keyup is indeterminate, so do not assert in that special case
* clean up keyboard key types, clean up duplicate def from merge
* various cleanup - wip - need multi-codepoint fix
* support multi-codepoint characters
* properly dispatch each part of a multipart utf-8 character
* fix import
* fix dtslint
* tscheck
* fix spacing
* Apply suggestions from code review
* changelog
* changelog
* ensure input actions are released in bidi; add test for keypress and input events for firefox
* fix keypress & input events in chrome
* consistent debug
* rm debug logging from input fixture
* some typos, changelog version
* fix toSupportedKey guard fn to properly reject non-strings
* add Space as named key, remove warnings re legacy firefox
* fix space
* support single-digit number keys
* remove support for F-keys
* add test cmd to types pkg
* rm failing vitest project config
* fix changelog
* clean up types a bit for single digit numbers
* more updates
---------
Co-authored-by: Cacie Prins <cacie@cypress.io>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
* chore: bump firefox version we test against to 141
* account for unspecified sameSite which is now available in firefox 140
* fix expected error string for invalid cookie
* override FORCE_FIREFOX_CDP firefox 141
* fix cdp override in ff 141+
* maybe fix cookeie system tests? seem to time out locally
* set family as well as name
* fix system tests fore ff 141
* fix ff deprecation
* rm erroneous err param
* assume firefox is modern in cookies driver e2e test
* Update system-tests/lib/system-tests.ts
* we do still run tests against firefox 134
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: Cacie Prins <cacie@cypress.io>
* breaking: Move getSelector, getSelectorPriority, and reset to private methods on ElementSelector API
BREAKING: Move getSelector, getSelectorPriority, and reset to private methods on ElementSelector API
* Update getSelectorPriority back to public method
* Update error message + changelog for removed method
* mention this PR in changelog
* feat: Rename SelectorPriority API to ElementSelector API
BREAKING: Rename SelectorPriority API to ElementSelector API
* bump unique-selector + remove restriction on type of prop
* rename file + remove test
* rename and add types to files
* save file
* fix types
* Add error when Cypress.SelectorPlayground is called to suggest renaming
* Add better description of ElementSelector API
* Error on invalid selector priority types
* changelog entry
* Update types to match exact type of selectorPriority
* remove semicolon
* Add feature description for separate feature
* remove the other semicolon
* Update types to use official cypress types
* Add other issue that this PR resolves.
* add name to selector priority
* alphabetize strings in selectorPriority types
* Update cy.press signature to be Chainable
Since it's added via `Commands.add`, I believe `cy.press` should have a return type of `Chainable<null>` rather than `void`
* Update first_spec.cy.js
Updated test for chainable
* use addAll rather than add to avoid type check
* fix unit test
* Add cli entry
* update changelog
---------
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* begin removing migration code
* remove migration query
* add back actions
* remove more migration references
* more migration removals
* remove call to migration
* remove gqp-Migration file
* updates to remove migration
* update type
* remove a lot more migration code - especially errors
* Remove other errors/warnins for versions before 10.x
* update error snapshots
* fix some tests
* index on remove-migration: 49fa75ab78 Merge branch 'remove-migration' of https://github.com/cypress-io/cypress into remove-migration
* index on remove-migration: 49fa75ab78 Merge branch 'remove-migration' of https://github.com/cypress-io/cypress into remove-migration
* index on remove-migration: 49fa75ab78 Merge branch 'remove-migration' of https://github.com/cypress-io/cypress into remove-migration
* remove more system tests and references
* fix call to refreshMetaState which was lost at initialization
* rearrange some system tests to not be dependent on migration
* update welcome version test
* fix wording of messaging
* skip irrelevant test
* fix failing assertion
* remove tests around cypress-plugin-retries
* Remove test from config_spec
* Remove screenshot from snapshot
* fix tests + remove more migration projects
* remove + update system tests
* remove + update system tests
* remove some invalid dev-server: start errors
* remove references and tests around pluginsFile which was removed
* remove some more invalid config examples
* Add changelog entry
* fix changelog link
* fix unit test
* index on remove-migration: 490ddb134c Merge branch 'release/15.0.0' into remove-migration
* index on remove-migration: 490ddb134c Merge branch 'release/15.0.0' into remove-migration
* index on remove-migration: 490ddb134c Merge branch 'release/15.0.0' into remove-migration
* run all binary/windows tests on this branch
* Update packages/scaffold-config/test/unit/detect.spec.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update packages/scaffold-config/test/unit/detect.spec.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
---------
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* breaking: Remove deprecated cy.stub(obj, method, fn) signature
BREAKING: Remove deprecated cy.stub(obj, method, fn) signature
* remove the code that supports 3 args of cy.stub
* changelog entry
* remove test for support of 3 arg signature
* link issue in changelog
* dependency: upgrade mocha to 7.2.0 (#31423)
* dependency: upgrade mocha to 7.2.0
* changelog entry
* remove the it.only from the mocha patch changelog that is triggering our stop-only check from passing
* skip patches folder with stop-only check
* remove extra bracket
* Update protocol_spec to reflect new mocha line number for error stack trace
* chore: updating v8 snapshot cache (#31424)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31425)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31426)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: migrates plugin system test to a v3 extension (#31434)
* chore: Update Chrome (stable) to 135.0.7049.52 (#31428)
* chore: Update Chrome (stable) to 135.0.7049.52
* empty commit
---------
Co-authored-by: cypress-bot[bot] <41898282+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
* chore: bump Firefox to 137 (#31431)
* chore: bump Firefox to 137
* use 137 version? weird.
* just kidding, major version only has 1 zero after it................
* dependency: update server to mocha 7.2.0 (#31432)
* dependency: update server to mocha 7.2.0
* Add PR to changelog
* chore: updating v8 snapshot cache (#31437)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31438)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31439)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: Update Chrome (beta) to 136.0.7103.17 (#31448)
* chore: Update Chrome (beta) to 136.0.7103.17
* empty commit
---------
Co-authored-by: cypress-bot[bot] <41898282+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* refactor: lifts toPosix to its own file, removes circular dependency between stack_utils and source_map_utils (#30983)
* refactor: lifts toPosix to remove circular dependency between stack_utils and source_map_utils
* camelCase to snake_case
* rm duplicated file
* internal: (studio) make the protocol database accessible to studio (#31443)
* internal: (studio) make the protocol database accessible to studio
* PR comment
* chore(deps): update dependency patch-package to v8 (#31451)
* chore(deps): update dependency patch-package to v8
* empty commit
* add types to handle json-stable-stringify dep change
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* chore: fix deprecation warnings and refactor react reporter to use functional components and hooks (#31284)
* chore: fix deprecation warnings and refactor react reporter to use functional components with hooks
* chore: update code to reflect feedback from code review
* fix issues with scrollIntoView() on updated component and refactor isOpen logic in collapsible to not attempt to sync state
* fix issues with tests after refactor
* see if event registration fixes windows flake
* chore: update snap-shot-core patch package file to match version (#31449)
* chore: update snap-shot-core patch package file to match version
* update circle cache
* experiment with removing .md from yarnclean
* add .md back to yarnclean
* bust circle cache
* remove .md files being cleaned from yarn to get around patch-package issue
* print size of cache
* try out the size of the .md
* remove md from yarnclean
* UPdate to version without removal of markdown files
* chore: updating v8 snapshot cache (#31460)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31462)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31461)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* feat: cy.press() (#31398)
* wip - cy.press() command
* cy command for dispatching key press/down/up events
* unit tests and failure cases for cy.press()
* Cypress.Keyboard.Keys definition; fix command log message
* add keys to the internal keyboard type
* auto-focus in cdp
* ensure aut iframe is focused before dispatching key events in bidi browsers
* update tests for cdp focus
* fixed tests for bidi
* lint
* fix type ref in .d.ts
* linting
* skip press() driver test in ff below v135
* try all contexts for frame before failing due to missing/invalid context id
* ensure error is error before accessing props
* skip press driver test in webkit
* changelog
* debug automation middleware invocation for firefox flake
* debug
* cache update
* use bidi automation middleware from connectToNewSpec rather than constructor
* more comprehensive logging
* debug socket base, additional debug in automation
* install firefox automation middleware on setup as well as connectToNewSpec
* unit tests for firefox-utils
* proper calledWith
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* docs: update contributing requirements for corepack (#31463)
* chore: remove `du` check (#31465)
* chore: use different args for `du` in win
* rm du command for build
* chore: release 14.3.0 (#31467)
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: cypress-bot[bot] <41898282+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
* wip - cy.press() command
* cy command for dispatching key press/down/up events
* unit tests and failure cases for cy.press()
* Cypress.Keyboard.Keys definition; fix command log message
* add keys to the internal keyboard type
* auto-focus in cdp
* ensure aut iframe is focused before dispatching key events in bidi browsers
* update tests for cdp focus
* fixed tests for bidi
* lint
* fix type ref in .d.ts
* linting
* skip press() driver test in ff below v135
* try all contexts for frame before failing due to missing/invalid context id
* ensure error is error before accessing props
* skip press driver test in webkit
* changelog
* debug automation middleware invocation for firefox flake
* debug
* cache update
* use bidi automation middleware from connectToNewSpec rather than constructor
* more comprehensive logging
* debug socket base, additional debug in automation
* install firefox automation middleware on setup as well as connectToNewSpec
* unit tests for firefox-utils
* proper calledWith
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* misc: Add some missing types + Convert js driver/query tests to ts
* changelog entry
* reuse partial
* Update cli/CHANGELOG.md
* Update call to querySelector to assign an identifier when checking for null
* misc: update a few cypress types + convert internal driver tests to TypeScript
* Update packages/driver/cypress/e2e/commands/actions/scroll.cy.ts
* add changelog entry
* bump circle cache?
* More type fixes
* fix some more
* Make the values numbers
* Update cli/CHANGELOG.md
Co-authored-by: Bill Glesias <bglesias@gmail.com>
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* remove experimentalSkipDomainInjection, add and deprecate injectDocumentDomain
* remove experimentalSkipDomainInjection, add injectDocumentDomain
* begin rethreading domain injection
* complete document domain transition
* move some cookie specs to separate test run
* origin and privileged commands with default docdom inject
* fix privileged channel when injecting document domain
* rm unnecessary .getOrigin abstraction in cors lib
* move remote-states in prep for refactor Replace Conditional with Polymorphism
* refactor remote states to strategy pattern
* cookie commands work as expected w cross origin bridge on different origins
* some origin tests updated
* run tests with document domain enabled
* run tests actually
* use correct config, swap conditional
* check-ts
* inject documetn domain for webkit tests
* do not exec injectDocumetnDomain in parallel
* fix ServerBase construction in tests to include cfg now
* pass cfg to ServerBase
* improved integration tests
* remove document domain checks for all server integration specs - will add injectDocumentDomain cases
* tests for injecting document domain when configured to
* square away server integration tests
* ensure cookies are set correctly, potentially
* errors pkg snapshots
* fix config tests
* fixing config tests
* somewhat improves tests for cors policies in packages/network
* fix ts err in server-base
* enable injectDocumentDomain for cy in cy tests
* fix Policy type ref
* refactor cypress-schematic ct spec to be less prone to timeouts
* run vite-dev-server tests with injectDocumentDomain
* rm document domain assertion from page_loading system test
* add system tests that test with injectDocumentDomain and others that test with cy.origin
* fix results_spec snapshot
* update experimentalSkipDomainInjection system test
* different behavior for certain net_stubbing tests based on injectDocumentDomain or not
* fix ts
* extract origin key logic from remote states, for now
* move server-base and response-middleware over to new pattern
* WIP - reentry
* fix build, remove console.log
* check-ts
* fix spec frame injection
* remove injection for localhost
* mostly fix vite-dev-server app integration tests
* fix codeframe in certain cases in chrome
* drop internal stack frames from stacks intended for determining code frame data
* some improvements to vite ct error codeframes
* fix proxy unit tests to use document domain injection util class
* rm .only
* fix all vite ct error specs
* rm console.log
* slight refactor to util class to make easier to test
* fix refactor - missing rename in files.js
* several tests do not set testingtype in config, so just check against component instead of checking for e2e
* revert changes to getInvocationDetails to see if that breaks tests
* re-enable stack stripping in invocation details for chrome
* new snapshots with more accurate invocation details
* test for same-site cross-origin cookie behavior
* ignore window.top ts errors
* revert forcing injectDocumentDomain in vite-dev-server cy config
* fix normalized whitespace for firefox "loading_failed" error
* always trim trailing wsp from stack before appending additional content
* force normalization of whitespace to three \n when adding additional stack details
* normalize wsp between stack and additional stack to "\n \n" in firefox
* remove stack_utils attempt at normalizing wsp
* various cleanup: remove commented console logs, add more detailed comments
* add on links to error messages
* remove experimentalSkipDomainInjection from exported type defs
* Update system-tests/test/experimental_skip_domain_injection_spec.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update packages/driver/cypress/e2e/e2e/origin/cookie_misc.cy.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* no need to coerce a boolean value to a booleanc
* export base config from primary cypress config in driver for use in inject-document-domain test subset
* lift experimentalSkipDomainInjection breaking option to root
* rollback config/options changes
* rm invalid comment
* use hostname instead of origin to create cookie from automation cookie
* clarify stack regex in results_spec
* lint
* take a stab at the changelog entries for this
* Update cli/CHANGELOG.md
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update cli/CHANGELOG.md
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* reenable locally-failing test
* changelog
* snapshot updatesfor experimental skip domain injection err msg
* remove packageManager declaration in package.json
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* pull support for JIT from vite since it doesn't have an affect for end users or performance (webpack only) [run ci]
rebase this
* remove the experimentalJIT flag and make it GA (default still false) [run ci]
* enable justInTimeCompile by default [run ci]
* chore: bump cache [run ci]
* remove logic around min supported browsers
BREAKING: remove logic around min supported browsers
* changelog entry
* forgot to save some changed files
* update broken tests
* remove another test testing unsupported browsers
* Add back logic for browser validator
* return if validator is undefined
* update called browser
* fix failing tests
* fix logic of unsupported showing
* add parens
* 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>
* 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>
* misc: Add generic types to net-stubbing for use in intercept and wait
* misc: Add changelog entry (#29507)
* misc: Revert to `any` for Interception type of multiple waits (#29507)
The nested types were apparently not supported (as written) before TypeScript ~4.1.Remove them in favour of just using `Interception<any, any>` in this overload of `wait`.
* misc: Move changelog entry (#29507)
---------
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* refactor: ensure 'its' function type excludes null and undefined (#28872)
This fix addresses an issue where the 'its' function could return null or undefined, causing unexpected behavior in certain scenarios. The change introduces a more robust type check to ensure that the returned value is always non-null and non-undefined.
* resolve linting issues related to TypeScript types
* Update changelog
* resolved lint errors
* Update cli/types/cypress.d.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update cli/types/cypress.d.ts
* move to correct changelog entry
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* fix(types): RequestBody type should be able to accept booleans and null values, which are all valid JSON literals
* refactor: boolean literals are valid JSON objects. Null values should also be considered valid when explicitly passed to the request function.
* refactor: body is explicitly defined when passed as positional argument or when supplied through the options object
* test: JSON literals should be parsed as valid JSON and set json=true
* docs: issue reference
* fix: boolean and null literal should be send to request promise as strings
* docs: fixes#28789 -- added issue reference
* test: tests proper conversion of JSON literals to strings.
* docs: added isssue reference
* docs: fixes#28789 -- changelog entry
* refactor: change isValidJsonObj to isValidBody
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* refactor: change isValidJsonObj to isValidBody
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* refactor: use lodash utils
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update cli/CHANGELOG.md
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* docs: moved entry to 13.6.5
* docs: fixed changelog entry
* Update CHANGELOG.md
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* chore: Add missing properties to Cypress.spec type
* Integrate PR suggestions
* Make some fields optional to hopefully fix the build
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* dependency: declare @types/node as a peerdep and allow >=16
Instead of pushing a pinned version of of types/node as a dependency on all consumer packages, allow any version of types/node that is supported by Cypress. It looks like cypress supports node v16 and up, so I set the peerdep semver to match that.
* Revert "dependency: declare @types/node as a peerdep and allow >=16"
This reverts commit 338fb8491e.
* dependency: remove @types/node as a dependency of cli
* Add changelog entry
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
* chore: set up feature/test-burn-in feature branch
* feat: add burnIn Configuration option (currently a no-op) (#27377)
* feat: add the burnIn Configuration to the config package. Option
currently is a no-op
* chore: make burn in experimental
* chore: set experimentalBurnIn to false by default
* feat: add new experimental retries configuration (#27412)
* feat: implement the experimental retries configuration options to pair
with test burn in
* [run ci]
* fix cache invalidation [run ci]
* fix snapshot added in v13 for module api to include test burn in experimentalflag
* chore: fix merge conflict
* chore: add burnInTestAction capability (#27768)
* add burnInTestAction capability
* feat: add burn in capability for cloud
* chore: fix snapshot for record_spec
* feat: implement experimental retries (#27826)
* chore: format the retries/runner snapshot files to make diff easier
* feat: implement experimentalRetries strategies 'detect-flake-and-pass-on-threshold' and 'detect-flake-but-always-fail'. This should not be a breaking change, though it does modify mocha and the test object even when the experiment is not configured. This is to exercise the system and make sure things still work as expected even when we go GA. Test updates will follow in following commits.
* chore: update snapshots from system tests and cy-in-cy tests that now have the cypress test metadata property _cypressTestStatusInfo. tests have been added in the fail-with-[before|after]each specs to visually see the suite being skipped when developing.
* chore: add cy-in-cy tests to verify reporter behavior for pass/fail tests, as well as new mocha snapshots to verify attempts. New tests were needed for this as the 'retries' option in testConfigOverrides currently is and will be invalid for experiment and will function as an override. tests run in the cy-in-cy tests are using globally configured experimentalRetries for the given tested project, which showcases the different behavior between attempts/retries and pass/fail status.
* chore: add unit test like driver test to verify the test object in mocha is decorated/handled properly in calculateTestStatus
* chore: add sanity system tests to verify console reporter output for experimental retries logic. Currently there is a bug in the reporter where the logged status doesnt wait for the aftereach to complete, which impacts the total exitCode and printed status.
* fix: aftereach console output. make sure to fail the test in the appropriate spot in runner.ts and not prematurely, which in turn updates the snapshots for cy-in-cy as the fail event comes later."
* chore: address comments from code review
* fix: make sure hook failures print outer status + attempts when the error is the hook itself.
* chore: improve types within calculateTestStatus inside mocha.ts
* Revert "feat: add burnIn Configuration option (currently a no-op) (#27377)"
This reverts commit c428443079.
* Revert "chore: add burnInTestAction capability (#27768)"
This reverts commit ae3df1a505.
* chore: run snapshot and binary jobs against experimental retries feature branch
* chore: add changelog entry (wip)
* Revert "fix snapshot added in v13 for module api to include test burn in experimentalflag"
This reverts commit bb5046c91e.
* Fix system tests
* Clear CircleCI cache
* Normalize retries config for test execution
* Fixed some unit tests
* update snapshots for newer test metadata
* Fix cy-in-cy snapshots
* update snapshots
* bump cache version
* chore: ensure legacy retry overrides work; reject exp. retries overrides (#28045)
* update changelog
* flip if statement in experimental retries option validation
* refactor invalid experimental retry override for more useful error msg
* revert testConfigOverrides snapshot
* update snapshots for test override sys test
* Update packages/config/src/validation.ts
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* succinct changelog entry; links to docs for details
* testConfigOverride system test snapshots
* Update .github/workflows/update_v8_snapshot_cache.yml
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update cli/CHANGELOG.md
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update packages/driver/src/cypress.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* updating cache-version
* improve typescript usage when appending experimental retry options to experiments in Experimenets.vue
* Revert "improve typescript usage when appending experimental retry options to experiments in Experimenets.vue"
This reverts commit b459aba882.
* refactor test config override validation for experimental retry subkeys
* account for error throw differences in browsers in system tests
* bump circle cache
* bump circle cache again
---------
Co-authored-by: astone123 <adams@cypress.io>
Co-authored-by: mabela416 <mabel@cypress.io>
Co-authored-by: Muaz Othman <muaz@cypress.io>
Co-authored-by: Muaz Othman <muazweb@gmail.com>
Co-authored-by: Cacie Prins <cacie@cypress.io>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Matthew Schile <mschile@cypress.io>