* removing vite-dev-server local dependency from react-vite-ts-configured system test
* moving some CRA examples over to use the object api for setup
* fixing issue where function API was broken by object API for cy config + devservers
* adding deeply nested react import to project-fixtures for cra
* finishes cutting over cypress/react for sys tests
* chore: adding circle for this feature branch
* chore: moving over many vue + vite system tests to use object API instead of function API (#21080)
* doing webpack-dev-server cutovers
* removing more webpack-dev-server refrences
* fixing snapshots
* bumping yarn.lock
* wip
* fix test
* fix assertion
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
* feat: removing all references for "fresh" dev servers (webpack-dev-server-fresh and vite-dev-server-fresh) (#21094)
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
* chore: add dev-servers as deps to server to be included in the binary (#21091)
* fix bad merge
* fix next types and webpack-dev-server- resolve
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
* chore: delete a lot of old code
* remove unused code
* update test
* remove dep on cypress_runner for non proxied page
* change binary
* revert scss changes
* delete a lot of code
* update sass
* update jsx
* styles
* revert change
* dont destructure from window.mobx anymore
* update readmes
* revert change to mobx store
* Update packages/runner-shared/README.md
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
* remove old code
* remove html webpack and copy webpack plugins from runner
* Apply suggestions from code review
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
* tdd for initial
* improve styles; add more tests
* new CT state and a few tweaks
* change cy.mount to mount
* update visitFailure states too
update visitFailure states too
* address PR comments
* added tests
* fix tests
* rename method
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
* Adding remaining reporter error tests.
* Removing existing integration spec file
* Removing existing runner fixtures for error specs
* Fixing ts lint
* Testing with less tests kept in memory
* Testing some cypress-in-cypress settings to improve run-mode performance.
* Reverting changes to doc_url specs
* PR Updates. Inverting default value for 'open in IDE' validation in an attempt to reduce test time.
* Cleaning up ported code
* Update system-tests/projects/runner-e2e-specs/cypress/fixtures/index.html
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
* Trying build workaround
* Bumping up parallelized builds for app integration tests
* Removing suspicious tests to validate CI build
* Removing more suspicious tests to test CI
* Trying to not scaffold every navigation
* Bumping resources for run-app-integration job. Updating reporter.errors specs to appropriately reduce AUT refreshes.
* Couple API tweaks
* test: Migrating runner hooks specs to app
* Removing unused helper from runner package; cleaning up a few things
* Updating yarn.lock
* fix: Migrating runner sessions ui tests to app
* test: Migrating runner's runner.ui tests to app
* test: Migrating runner retries ui tests to app
* Cleaning up a few things for consistency
* Fixing ts errors
* Removing tests for runner header that have existing coverage in app
* Working around detached elements in CI
* Still working around detached elements in CI
* Updating sessions.ui test to click more carefully. Adding bit more coverage around runner header and snapshot pinning.
* Update packages/app/cypress/e2e/runner/retries.ui.cy.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Migrating issue specs. Updating TODOs. Hopefully addressing some flake.
* Stopping icon spin animation for percy snapshots
* WIP
* customPercyCommand.ts
* WIP: working on custom percy snapshots for hiding elements other than the reporter [skip ci]
* WIP: Adding naive mutation observer for reseting DOM mutations after snapshots [skip ci]
Got tired of tripping over types, I can add them when we're feature complete
* Implementing scoped snapshots throughout app/runner tests, let's see how percy output looks
* Adding more snapshots to runner tests.
* Using spec link as click target
* Stop taking snapshots of failed tests
* Scoping selector playground snapshots (though they're still unstyled)
* Addressing flake in virtualized spec list
* Drying up runner snapshotting
* Logging single percy snapshot that reflects proper viewport and overrides
* Updating describes to better match previous snapshot names
* Removing added snapshots to get more accurate better diff presentation in Percy
* Removing new runner.ui snapshots as well
* Adding a few PR recommendations. Updating one last spec name that was corrected for grammar and no longer matched. Updating/removing relevant TODOs.
* Updating to use anticipated default width for reporter
* Updating tests for consistency with previous snapshots
* Tying original command into promise chain
* Let's try that again
* Making percy command enqueuing explicit to test result
* Scoping down on some variables. Using defaults for sessions tests.
* Updating some overrides to see if visibility is handled inconsistently
* Whitespace vanquished, working session test updates back in for long command logs
* Viewport height is not reflected in snapshots, let's try forcing the height on the panel
* Forcing the height issue
* Let's try a minHeight on the percy command
* Cleaning up alterations made during percy exploration
* Trying to get a cleaner percy diff after merge
* Fix Percy to use 10.0-release branch as baseline image comparison
* add comments about temporary percy env vars
* Adding some doc for changes made to customPercyCommand
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
* develop:
feat: gray out the path to system node in cypress run header (#20121)
feat: redesign server errors (#20072)
test: fix awesome-typescript-loader test and remove test-binary job (#20131)
fix: Fix issues with stack traces and command log in Chrome 99 (#20049)
fix: `cy.type(' ')` fires click event on button-like elements. (#20067)
fix: `change`, `input` events are not fired when the same option is selected again. (#19623)
build: publish vue3 on latest (#20099)
chore: release @cypress/webpack-preprocessor-v5.11.1
chore: release @cypress/webpack-dev-server-v1.8.1
fix: detect newly added specs in dev-server compilation (#17950)
chore: Remove pkg/driver //@ts-nocheck part 3 (#19837)
chore: set up semantic-pull-request GitHub Action (#20091)
chore: release @cypress/react-v5.12.2
fix: remove nullish coalescing in js files to support node 12 (#20094)
docs: update @cypress/webpack-preprocessor links (#19902)
refactor: use aliases instead of meta (#19566)
* chore: rename errors.js -> errors.ts
* refactor: type safety on errors
* refactor: add err_template for consistent error formatting
* fix a few system tests
* fix tests; update snapshots
* Fix types
* normalize snapshot - remove chalk ansi colors
* more unit test fixes
* more system test fixes
* circleci build
* backtick always in stdout, fix error formatting and failing snapshots
* refactor: create @packages/errors
* fix import
* fix import
* fixing build / tests
* remove extraneous file
* move warnIfExplicitCiBuildId
* fix build / tests
* Fix
* error, type fixes, documentation, standardize child process error serialization
* fix import
* build errors on install
* wrote specs generating visual images of all errors
* remove unused dep
* sanitize stack traces
* add image diffing
- if base images don't exist, create them
- if base images don't match and local, overwrite them, if in CI throw
- if base images are stale and local, delete them, if in CI throw
* remove Courier New + MesloLGS NF font
* type fixes, remove Bluebird, general cleanup
* TS Cleanup
* skip typecheck on tests for now
* yarn.lock
* fix @types/chai version
* fix yarn.lock
* Different version of mocha types so it isnt patched
* errors spec snapshot
* CI fix
* fixes
* store snapshot images in circle artifacts
* dont change artifact destination prefix
* use Courier Prime
* antialias the text
* decrease pixelmatch threshold, fail in CI only when changed pixels > 100
* increase timeout
* overflow: hidden, remove new Promise, add debug logging
Co-Authored-By: Tim Griesser <tgriesser@gmail.com>
* run unit tests w/ concurrency=1
* unique window per file
* disable app hardware acceleration + use in process gpu + single process
* do not do image diffing
- conditionally convert html to images
- store html snapshots
- do not store images in git
* store snapshot html
* Merge branch 'tgriesser/chore/refactor-errors' of https://github.com/cypress-io/cypress into tgriesser/chore/refactor-errors
* remove concurrency
* fix assertion
* fixing ci
* Link in readme
* pass the browsers to listItems
* fix: build @packages/errors in CI, defer import to prevent errors locally
* Merge branch 'develop' into tgriesser/chore/refactor-errors
* develop:
chore: fix cypress npm package artifact upload path (#20023)
chore(driver): move cy.within logic into it's own file (#20036)
chore: update automerge workflows (#19982)
fix(selectFile): use target window's File/DataTransfer classes (#20003)
chore: Update Chrome (stable) to 98.0.4758.80 and Chrome (beta) to 98.0.4758.80 (#19995)
fix: Adjust ffmpeg CLI args for performance (#19983)
build: allow unified to run cypress on Apple Silicon (arm64) (backport #19067 to 9.x) (#19968)
* fix run-if-ci.sh
* remove dead code
* Mark the .html files as generated in gitattributes
* fix running single error case, slice out more of the brittle stack
* remove additional brittle stack line
* firefox web security error
* nest inside of describe
* reformat and redesign errors
* more error cleanup and standardization
* additional formatting of errors, code cleanup, refactoring
* update ansi colors to match terminal colors
* cleanup remaining loose ends, update several errors, compact excess formatters
* fix types
* additional formatting, remove TODO's, ensure no [object Object] in output
* add test for 412 server response on invalid schema
* update unknown dashboard error on creating run
* use fs.access instead of fs.stat for perf
* added PLUGINS_FILE_NOT_FOUND error
- separated out from PLUGINS_FILE_ERROR
- add system tests for both cases
- update snapshots
- remove stack trace from PLUGINS_FILE_NOT_FOUND fka PLUGINS_FILE_ERROR
* add plugins system test around plugins synchronously throwing on require
* remove forcing process.cwd() to be packages/server, update affected code
- this was a long needed hangover from very old code that was doing unnecessary things due to respawning electron from node and handling various entrypoints into booting cypress
- this also makes the root yarn dev and dev-debug work correctly because options.cwd is set correctly now
* perf: lazy load chalk
* remove excessive line since the file exists but is invalid
* fix types
* add system test when plugins function throws a synchronous error
* create new PLUGINS_INVALID_EVENT_ERROR, wire it up correctly for error template use
- properly pass error instance from child to ensure proper user stack frames
- move error display code into the right place
* only show a single stack trace, either originalError or internal cypressError
* push error html snapshots
* fix tests, types
* fix test
* fix failing tests
* fix tests
* fixes lots of broken tests
* more test fixes
* fixes more tests
* fix type checking
* wip: consistent handling of interpolated values
* feat: fixing up errors, added simple error comparison tool
* wrapping up error formatting
* Fixes for unit tests
* fix PLUGINS_VALIDATION_ERROR
* fix fs.readdir bug, show rows even if there's only markdown formatting [SKIP CI]
* when in base-list, show full width of errors
* Fix type errors
* added searching and filtering for files based on error name
* fix: system tests
* updated NO_SPECS_FOUND error to properly join searched folder + pattern
- join patterns off of process.cwd, not projectRoot
- highlight original specPattern in yellow, baseDir in blue
- add tests
* fixes failing tests
* fix test
* preserve original spec pattern, display relative to projectRoot for terminal banner
* make the nodeVersion path display in gray, not white
* fix tests, pass right variables
* fix chrome:canary snapshots
* update snapshots
* update snapshot
* strip newlines caused by "Still waiting to connect to {browser}..."
* don't remove the snapshotHtmlFolder in CI, add additional verification snapshots match to error keys symmetrically
* update snapshot
* update snapshot
* update snapshot
* update snapshot
* update snapshot
* update snapshot
* update gitignore
* fix snapshot
* update snapshot html
* update logic for parsing the resolve pattern matching, add tests
* update snapshots
* update snapshot
* update snapshot
* update snapshot
* fix failing test
* fix: error_message_spec
* fix snapshot
* run each variant through an it(...) so multiple failures are received
* add newlines to multiline formatters, add fmt.stringify, allow format overrides
* stringify invalid return values from plugins
* move config validation errors into packages/errors, properly highlight and stringify values
* add component testing yarn commands
* fix the arrow not showing on details
* fix typescript error
* fixed lots of poorly written tests that weren't actually testing anything. created settings validation error when given a string validation result.
* fixes tests
* fixes tests, adds new error template for validating within an array list (for browser validation)
* remove dupe line
* fix copy for consistency, update snapshots
* remove redundant errors, standardize formatting and phrasing
* more formatting
* remove excess snapshots
* prune out excessive error snapshot html files when not in CI
* add missing tests, add case for when config validation fails without a fileType
* fixes test
* update snapshot
* update snapshot
* update snapshot
* sort uniqErrors + errorKeys prior to assertion - assert one by one
* add system test for binding to an event with the wrong handler
* fixes tests
* set more descriptive errors when setting invalid plugin events, or during plugin event validation
* remove duplicate PLUGINS_EVENT_ERROR, collapse into existing error
* use the same multiline formatting as @packages/errors
* standardize verbiage and highlighting for consistency
* fix incorrect error path
* fixes tests, standardized and condensed more language
* Update packages/errors/src/errors.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update guides/error-handling.md
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update guides/error-handling.md
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* added some final todo's
* fix types
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
Co-authored-by: Tim Griesser <tgriesser@gmail.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* start graphql server in run mode
* update url logic
* use correct mobx instance
* expose util method for testing selector playground
* add __Cypress__ global
* correctly order aut lifecycle methods
* correct spec url in tests
* fix server integration tests
* add title to html
* update url encoding
* uni test
* encoding
* encode ssr data as base64
* set correct cypress.spec.name
* set arch and os options
* add version to options
* update config test
* update encoding
* temp skip
* more skips
* try to fix launchpad tests
* update test
* update runner
* feat: automation
* ignore error
* remove unused runner steps
* try remove error
* config
* Ensuring a provided testId gets rendered on a consistent element reference within HeaderBar.
* better conditionals
* automation connection
* try applying firefox cdp automation
* skip spec
* skip for now
* skips
* respond to failed visit event correctly
* chore: fix screenshot system tests (#19686)
* set fake __CYPRESS_MODE__ on window
* vue logic for screenshot + run-mode checks
* Restore AUT wrapper div, make the name more clear
* switch to await for `before:screenshot` event send
* remove skipped tests
* add CYPRESS_INTERNAL_MODE to env
* move logic into component
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
* do not run runner-shared tests anymore
* dont care about runner unit test
* add reference screenshots confirmed to be good
* fix rerun spec
* do not hardcode http protocol, remove old code
* revert protocol and add missing pre-fetch gql query
* correctly pass ssr data, update request policy
* automation element updates
* do not apply CDP automation for firefox
* make assertions more debug-friendly
* up timeout, make firefox pixels slightly looser on CI
* Fix TS
* Try to fix tests
* Try to fix tests
* do not require urql for run mode
* wip: request policy changes
* use separate component for run mode and open mode
* expose selector playground function globally for testing purposes
* fix typescript
* fixing unit tests
* encode ssr data to match production
* fix test
* fix test
* readme
* fix: Run mode for unified runner resolve conflicts (#19743)
* merge in 10.0-release
* Fix merge conflict with client route
* Fail earlier when trying to run cypress in cypress in a browser other than chrome
* Fix some tests
* Set empty obj if config is not set
* Update tests
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* update automation namespace, remove old code
* remove skipped test
* handle non proxied case
* clean up code
* revert png
* do not start graphql server in run mode
* Fix ts error
* revert type.cy.js to original test
* revert change in driver screenshot
* remove unused async
* remove unused env var
* remove old todo comment
* remove needless console.log
* unskip test
* use pause: true to avoid gql request
* remove unused automation element
* remove unused setAutomationStatus method
* change pane -> panel
* reimplement 1px flake fix for firefox type.cy.js
* chore: remove launchpad environment variable (#19778)
* remove LAUNCHPAD conditionals
* add timeout to test
* revert file
* correctly normalize url
Co-authored-by: Tyler Biethman <tbiethman@gmail.com>
Co-authored-by: Mark Noonan <oddlyaromatic@gmail.com>
Co-authored-by: Mark Noonan <mark@cypress.io>
Co-authored-by: Alejandro Estrada <estrada9166@gmail.com>
Co-authored-by: estrada9166 <estrada9166@hotmail.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* added terminals for packages/app
* create new runner-ct entrypoint; exclude all unnecessary files to prevent double event-manager import
* rename Promise -> Bluebird
* add conditional if-def loader to swap out main for main-lite based on process.env.CI
* avoid re-render and ensure reporter is torn down
* clean up reporter correctly
* update docs and consolodate teardown
* update yarn lock
* await teardown, update comments
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* develop: (40 commits)
fix(driver): Sticky elements within a fixed container will not prevent an element from being scrolled to (#18441)
chore: make `create` function on server.ts obsolete (#18615)
docs: Add instructions to squash commits to develop in Contributing (#18728)
fix(@cypress/react): throw if using Next.js swc-loader without nodeVersion=system (#18686)
refactor: remove Ramda (#18723)
chore: Increase paralleled machines for desktop-gui tests (#18725)
chore: Update Chrome (stable) to 95.0.4638.69 (#18696)
chore: release @cypress/vue-v3.0.4
chore: release @cypress/react-v5.10.2
chore: release @cypress/schematic-v1.5.3
fix: remove outdated registry link (#18710)
chore: release @cypress/schematic-v1.5.2
chore: release create-cypress-tests-v1.1.3
chore: Update Chrome (beta) to 96.0.4664.27 (#18676)
chore(tests): Remove flaky assertion that relies on png how compression (#18668)
fix: make sure to go back to no-specs when delete spec file (#17760)
fix: Next.JS 12 components testing failing with ` TypeError: Cannot read property 'traceChild' of undefined` (#18648)
Backport .gitignore from unified-desktop-gui
chore(docs): add 'Upgrading Electron' instructions (#18594)
release 8.7.0 [skip ci]
...
* change event manager to be a class
* update method
* attach event manager to window for cypress-in-cypress
* fix CT tests
* do not use fake event manager anymore
* remove cypress import from event manager
* pass in cypress as arg
* move regenerator runtime
* move async runtime
* include regenerator-runtime in runner unit tests
* fix unit tests
* inject studio
* attach event manager to window for unified app
* move event manager to app
* move event manager entirely to app, delete runner-shared copy
* improve tests
* add missing arg
* types
* remove unused optimization
* work on snapshots
* collapse shared store fields into runner-shared
* snapshot controls working, collapse state
* named observer
* remove unused code
* styling
* move code around
* wip: unified snapshots using Vue
* do not show snapshots when test is running
* remove old code
* style
* revert changes
* lint
* rename stores
* codegen package.json
* add tests for snapshots
* simplify test
* wip: save current spec on server in data context
* execute spec when clickd
* basic CT workflow
* share types
* style
* style
* fix types
* use id to identify current spec
* fix types