* 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>
* add retries e2e test
* restore runner/test/eslintrc
* use mocha pass event, move runner.spec to runner package
* fix .eslintignore
* remove npmInstall logic in helper/e2e script, force custom reporters to use our mocha
* temp 04/09/20 [skip ci]
* add retries output to server/reporter, fix mocha pass event order, cleanup
* e2e tests - dont run electron tests in other browsers
* Update readme to reflect how to start server for cypress tests
* fix after merge
* fix .coffee -> .js after merge
* fix attempt.tsx
* fix runnable titles emitted to terminal reporters
* fix more tests: update snapshots, fix 7_record_spec, 8_reporters_spec
* remove styling for 'attempt-error-region' so it's not indented
- This was the older styling before error improvements and is no longer
necessary.
* try 2: fix rerun before/after hooks
* fix runner with only, runner snapshots, lint fixes
* temp 04/29/20 [skip ci]
* backport changes from test-retries
* change logic to rerun before hooks after top navigation
* fix windowSize for browser e2e test
* fix windowSize for xvfb chrome in e2e test
* ok fine, just disable screenshots
* fix after merge: decaffed navigation.js
* update server/unit test snapshots
* fix after merge: decaffed aliases.js
* fix usage of cypress --parallel flag in circle.yml
* fix circle.yml integration-tests jobs
* fix decaf related typo
* fix circle.yml separate command for runner-integration-tests
* update runner/integration tests + snapshot after error improvements
* fix runner/integration snapshots for chrome/ff stacktrace differences
* rerun ci
* fix passing --parallel to runner-integration tests
* perf: faster lookup for hooks without runnables
* fix afterAll hook switch logic
* simplify mocha prototype patches
* fix decaf utils.coffee after merge
* backport to before/after fix
* backport to before/after fix 2
* cleanup from decaf, fix ui/package.json
* update helpers, simplify runner.spec
* fix lint-types errors, flaky spec
* fix noExit passed to e2e test inline options
* cleanup snapshot utility - refactor to use util file
* remove before/after changes
* make cy obj a class instance
* cleanup/unmerge before/after fixes PR...
* more cleanup
* add comment
* fix runner.spec
* cleanup snapshot utility more, cleanup reporter.spec
* fix after merge
* minor rename variable
* fix after merge: decaffed files
* fix specName in reporterHeader, spec_helper require
* replace reporter specPath usages with spec object from config
* cleanup, fix specs, fix types tests
* fix config spec paths in isolated runner, fix snapshot plugin button
* combine runner.spec.js and runner_spec.js
* fix incorrect merge
* minor minor cleanup
* rename driver/test/cypress to driver/test
* use yarn workspace over lerna for individual package commands
* add error message to driver start
* remove usage of wait-on
* update <reference types/>, import string
* fix driver/readme
* fix readmes after regex replace
* revert wait-on changes
* Revert "revert wait-on changes"
This reverts commit 6de684cf34.
* update yarn.lock
* fix broken path in spec
* fix broken paths in specs with @packages/driver
* move runner/test/cypress into runner/cypress
* start server in pluginsFile in runner/cypress tests
* fix more broken spec paths
* fix broken paths after runner/cypress folder move
* move type definition loading for driver/cypress into dedicated file
* move internal-types to "types" folder, fix driver/index.d.ts
* fix type-check in packages/runner. not exactly sure why
* fix runner type-check by excluding test folder in tsconfig
* bump timeout on e2e/8_error_ui_spec
* update snapshot utility, rename tests in runner/runner.spec, fix README yarn commands
* delete old spec
* fix snapshot naming, remove redundant test in reporter_spec
* fix file renames after merge
* rename runner/ snapshot
* update server/unit/reporter_spec snapshot
* update runner/runner_spec snapshot
* rename runner snapshot file
* address feedback: move server reporter snapshot specs out
* address feedback: add comment about exposing globals
* fix test-retries after merging isolated-runner
* fix runner/test helper, update snapshot
* address feedback: split out runner/retries spec, move reporter/ui tests to runner/ui spec (mostly done), various cleanup
* fix scrolling, attempt opening, update snapshots
* fix e2e support file
* fix 5_spec_isolation
* fix mislabeling attempt screenshots
* only add test results prevAttempts if exists
* fix reporter/unit tests, server/unit tests
* remove dead code, fix test isOpen
* update snapshots for retries.mochaEvents, fix snapshot error in state hydration test, remove dead snapshots
* new moduleAPI schema using attempts array, fix wrapping errors from hook retries, update snapshots
* add displayError, null out fields in moduleAPI schema
* change default retries to {runMode:2, openMode:0}
* fix reporter type-check
* upgrade json-schemas, update snapshots
* reformat error.stack to be only stacktrace, update snapshots
* fix stacktrace replacing in 5_spec_isolation
* fix navigation error causing infinite reloading, bump timeout on e2e/8_error_ui
* fix server/unit tests for new schema
* fix reporter/unit tests
* fix reporting duplicate screenshots using cy.screenshot during test retry
* update snapshot for 6_uncaught_support_file_spec
* bump x-route-version: 3
* fix test.tsx collapsible content, css, fix e2e/8_error_ui, e2e projects excluding retries
* fix css, fix padding in runnable-instruments, fix runner/integration tests
* fixup after merge
* fix reporter/runner to work with split hooks
* update api tests, runner/cypress tests, reporter
* fix 5_spec_isolation snapshots, fix runner/cypress errors.spec, fix null reference in test.tsx
* fix e2e/non_root spec, fix type_check, fix reporter/unit tests
* setup percy snapshots in runner/cypress, fix driver/runner test:after:run event, add tests for only,skip in runner/cypress, fix retried css
* add customPercySnapshot
* fix circle.yml
* fix circle.yml 2
* fix circle.yml 3
* add warning for incompatible retries plugin
* add more percy snapshots
* fix firefox screenshot resolution in e2e test
* Fix testConfigOverrides not affecting viewport (#8006)
* finish adding percy snapshots to runner/cypress retries spec, update error msgs, add tests to be fixed
* remove .only
* fixing missing repo argument
* fix testConfigOverrides usage with retries, fix test
* fix issues from previous merge
* add script that can query CircleCI workflow status
* add circleci job to poll
* add retries
* try yarn lock
* retry, percy finalize
* check for current running job
* do not swallow request error
* better print
* use job name from circle environment
* use debug instead
* renamed circle polling script
* refactor circle to conditionally run percy-finalize when env var is available
- pass job-names to wait on as an argument
* use multi-line strings and quote --job-names
- rename —circle-jobs to —job-names
* add comment
* only poll until the jobs to wait for are blocked or running
* fix running hooks at correct depth after attempt fails from hook and will retry, update e2e snapshots
* fix reporter/unit tests, remove unused toggleOpen code
* move custom percy command into @packages/ui-components and apply them to desktop-gui
* halt percy finalize job if env variable is not set
* if only I could code
* update runner/cypress mochaEvent snapshots, fix e2e firefox resolution
* fix css for attempt border-left, fix attempt-tag open/close icon, add color to attempt collapsible dot
* try percy set viewport width
* set default retries back to {runMode:0, openMode:0}
* formatting: add backticks to warning message
* write explicit test for screenshot overwriting behavior, fix snapshots after changing retries defaults
* fix e2e.it.only`
* cleanup whitespace
* update snapshots
* fix cypress module API types for new result schema
* build and upload binary for test-retries branch too (linux)
* add pre-release PR comment
* fix pre-release commit comment
* rename runner/cypress test
* update retries.ui.spec test titles
* fix after merge: use most recent attempt for before/after hooks
* add suite title to hook error in runner/cypress tests
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>