117 Commits

Author SHA1 Message Date
renovate[bot] 8d28261499 chore(deps): update dependency fs-extra to v9 🌟 (#19939)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: David Munechika <david@cypress.io>
2022-02-18 10:33:27 -06:00
Brian Mann 29841f32b9 feat: redesign server errors (#20072)
* 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>
2022-02-11 02:06:07 -05:00
Johan Baversjo 219138ca4e build: allow unified to run cypress on Apple Silicon (arm64) (backport #19067 to 9.x) (#19968) 2022-02-01 20:00:21 +00:00
renovate[bot] 0382768981 chore(deps): update dependency electron to v15.3.4 🌟 (#19657)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-11 21:35:43 +00:00
Alex Beardsley 1e72b3936d fix: Update electron-packager to support development on M1 Macs (#19366) 2021-12-16 11:37:19 -05:00
Emily Rohrbough 6b15468579 chore: Migrate Windows Tests from Appveyor to CircleCI (#19037)
Co-authored-by: Zach Bloomquist <git@chary.us>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
2021-12-02 14:20:06 -06:00
Tim Griesser e4f5b106d4 feat: use hoisted yarn install in binary build (#17285) 2021-11-20 14:19:51 -05:00
renovate[bot] 3095d733e9 feat(deps): update dependency electron to v15 🌟 (#18317)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
Co-authored-by: David Munechika <davidam1203@gmail.com>
2021-11-09 20:52:17 +00:00
Zach Bloomquist d0c9bf8ac3 chore(docs): add 'Upgrading Electron' instructions (#18594)
Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>
2021-10-26 21:55:38 +00:00
renovate[bot] a639649d25 chore(deps): update dependency electron to v14 🌟 (#18384)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-06 21:51:42 +00:00
renovate[bot] b8b84603b2 chore(deps): update dependency electron to v13.5.0 🌟 (#18318)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-30 20:16:33 +00:00
renovate[bot] 3973c3395f chore(deps): update dependency electron to v13.2.0 🌟 (#17772)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-17 18:31:51 +00:00
renovate[bot] 9df2543f88 fix(deps): update dependency electron to v13 🌟 (#17408)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Zach Bloomquist <git@chary.us>
2021-08-09 22:09:30 +00:00
Zach Bloomquist 209efa433d fix: use process.geteuid and catch uid errors in file util (#17488)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2021-07-30 16:05:17 +00:00
renovate[bot] d10694aa8e fix(deps): update lodash to 4.17.21 🌟 (#16406)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-10 11:22:29 -05:00
Zach Bloomquist 7b55863b74 chore(deps): downgrade electron to v12.0.0-beta.14 (#16113)
Fixes (avoids?) #15853

Electron v12.0.0-beta.16 and above contain an unknown bug causing a major slowdown when video recording is enabled. For now maybe we can downgrade Electron to this last known good version, v12.0.0-beta.14
2021-04-22 19:20:28 +00:00
Zach Bloomquist 5a3f5188fd chore(deps): electron@12.0.2 (#15766) 2021-04-02 15:43:36 +00:00
Zach Bloomquist 897ee9cd59 chore: exit with non-zero exit code on signal exit (#15727) 2021-04-01 16:48:50 +00:00
Zach Bloomquist ecca7da836 electron@12.0.1 2021-03-16 10:25:30 -04:00
renovate[bot] b52ac98a69 feat(deps): update dependency electron to version 12.x 🌟 (#15292)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
2021-03-10 15:24:00 +00:00
renovate[bot] c3af3dcdef chore(deps): update dependency electron to version 11.3.0 🌟 (#15201)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-24 19:03:16 +00:00
renovate[bot] c34dad00a6 chore(deps): update dependency electron to version 11.2.3 🌟 (#15056)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-11 17:54:14 +00:00
Brian Mann af26fbebe6 feat: component testing (#14479)
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2021-02-04 15:45:16 -05:00
renovate[bot] aef9facd19 chore(deps): update dependency electron to version 11.2.2 🌟 (#14913)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-04 14:23:28 +00:00
renovate[bot] 440f13a3c5 chore(deps): update dependency electron to version 11.2.1 🌟 (#14764)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-29 19:13:54 +00:00
renovate[bot] 9be61657f4 fix(deps): update dependency debug to version 4.3.1 🌟 (#14583)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-19 12:21:05 +06:30
renovate[bot] 4604f24e11 fix(deps): update dependency electron to version 11.2.0 🌟 (#14567)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-14 16:18:17 +00:00
Zach Panzarino 3eb3bfa487 build: properly use local npm packages for development and binary build (#14182) 2021-01-05 00:34:13 -05:00
renovate[bot] 814fe6f27c chore(deps): update dependency electron to version 11.1.1 🌟 (#14352)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-30 14:17:11 -05:00
renovate[bot] a6a428a183 chore(deps): update dependency electron to version 11.0.3 🌟 (#9409)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-09 10:34:37 -05:00
renovate[bot] 2207bb105e feat(deps): update dependency electron to version 11.0.2 🌟 (#9222)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-11-20 18:58:55 -05:00
Gleb Bahmutov 84d1afd27d feat: print bundled Node and Electron versions in cypress version (#9183) 2020-11-16 13:17:24 -05:00
renovate[bot] 58116f5780 fix(deps): update dependency electron to version 10.1.5 🌟 (#8975)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-26 16:12:13 -04:00
renovate[bot] e82c28613e chore(deps): update dependency electron to version 10.1.4 🌟 (#8927)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-22 10:06:56 -04:00
renovate[bot] f1d4026b03 feat(deps): update dependency electron to version 10.1.3 🌟 (#8406)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-09-29 13:54:38 -04:00
renovate[bot] 032b869baf chore(deps): update dependency electron to version 9.2.1 🌟 (#8436)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-27 13:50:43 -04:00
Zach Bloomquist d42be7bec0 fix(deps): electron@9.2.0 (#8235)
Latest version for 5.0.0 release
2020-08-10 11:51:37 -04:00
Brian Mann e7b7a242be Merge branch 'develop' into v5.0-release
# Conflicts:
#	cli/package.json
#
packages/server/test/support/fixtures/projects/e2e/cypress/integration/r
equest_spec.coffee
2020-07-11 16:51:26 -04:00
Brian Mann c72538d189 Fix lodash dupe dep (#7954)
* blow away yarn.lock

* bump lodash to 4.17.19

* reduce binary size again

* bump @types/node to correct version, fix types

* fix react + react-dom types

* add clean command for .ts conversion to .js files

* fix flaky test
2020-07-11 16:34:23 -04:00
Zach Bloomquist ffcb036b40 feat(deps): electron@9.0.5 (#7791)
* chore(deps): electron@9.0.5

BREAKING CHANGE: libgbm is a requirement

* update node, xcode, docker images

* lockfile

* chore(types): tsify lib/gui/windows and spec

* fix Electron extension loading

global extension loading was deprecated in 9, now has to be per-session

* make windows fns stubbable

* update electron_spec

* tsify issue_173_spec

* use upstream foxdriver to fix FF >= 75

see https://github.com/benmalka/foxdriver/issues/7

* update test

* for now, install libgbm-dev at ci time

see https://github.com/cypress-io/cypress-docker-images/pull/332

* fix open mode

* remove devtools-ext dir
2020-06-29 14:29:51 -04:00
Ben Kucera 47faf52e16 internal: use yarn workspace over lerna for individual package commands (#7644)
* use yarn workspace over lerna for individual package commands

* remove usage of wait-on

* fix readmes after regex replace

* revert wait-on changes

* update yarn.lock
2020-06-10 18:31:40 -04:00
renovate[bot] c7dfb788d6 chore(deps): Update dependency electron to version 8.3.1 🌟 (#7599) 2020-06-05 11:28:17 -04:00
renovate[bot] e5e2afc421 chore(deps): update dependency electron to version 8.3.0 🌟 (#7387) 2020-05-18 09:12:47 -04:00
renovate[bot] 0463a3fbe5 chore(deps): update dependency electron to version 8.2.5 🌟 (#7236)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-06 10:33:01 -04:00
renovate[bot] 9d8992a445 chore(deps): Update dependency electron to version 8.2.3 🌟 (#7079)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-20 15:04:28 -04:00
renovate[bot] 9deb66bb76 chore(deps): Update dependency electron to version 8.2.0 🌟 (#6855)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-26 09:30:53 -04:00
Gleb Bahmutov abf4d85869 switch to electron-builder to code sign and notarize Cypress ap… (#6013)
* electron@7.x

* node12.8.1-chrome78-ff70

* Revert "node12.8.1-chrome78-ff70" for now

This reverts commit db2d521994.

* update sendCommand to log on all sendcommands

* promisification in 6.x

* Revert "Revert "node12.8.1-chrome78-ff70" for now"

This reverts commit 57fe764098.

* fix sendcommand

* fix cdp in electron

* fix desktop-gui test

* skip tests that will be fixed by #4973

* bump MAX_ALLOWED_FILE_SIZE :/

* update electron browser spec

* make new dialog code null-proof

* add failing e2e test for issue 5475

* bump electron packager

* add e2e snapshot

* update deprecated electron getters/setters

https://github.com/electron/electron/blob/7-1-x/docs/api/modernization/property-updates.md

* build and test on Mac

* use electron-builder 20.41.0

that adds an option to use hardened Mac OS, which is necessary
for code notarization later.

See https://github.com/electron-userland/electron-builder/releases/tag/v20.41.0
and https://github.com/electron-userland/electron-builder/pull/3858

* electron-builder and pass hardenedRuntime: true

* uncomment build

* upload built binary on mac

* back to 20.41.0, trying after sign hook without success

* use current electron-builder alias instead of build

* retry smoke test on first failure

* testing

* trying to notarize signed app (that does not have node_modules yet)

* env variable names

* copy node_modules ourselves

* build and bundle binary on mac on circle, inject new context

* enable build steps before electron build

* increase mac build timeout

* update build folder on mac

* uncomment actual electron build command

* set linux target to zip

* set zip as target for all platforms

* updated steps

* put notarization hook back

* tweaks for icons

* remove dist electron before code sign

* icons per platform

* make node_modules copy path platform-specific

* fix linux build unpacked folder

* build mac

* fix lint

* test new mac binary against kitchensink

* working on Linux build

* try building entire thing on Linux

* removing correct electron dist folder

* increase zip size limit for now

* add folder rename on Linux from linux-unpacked to Cypress

* print file sizes before zipping

* move linux-unpacked to build dir function

* try deleting second electron file, but code signing probably would not work

* test windows build [build binary]

* ignore tsc errors

* windows build path

* windows [build binary]

* update windows build folder

* increase binary build timeout on Mac

* no need to pass our dist folder

* adding explicit list of additional binaries to code sign on mac

* yarn lock

* uncomment necessary build steps

* electron dir for Linux

* yarn lock again

* back to execa v3

* use execa v4 in packages launcher

* yarn lock again and again

* updated tests that use execa

* print build folder

* add executable name on Linux

* get rid of execa.shell in build scripts

* remove old and commented out code

* need to test building binary on Windows

* throw error from after sign hook if fails

* use execa to zip

* yarn lock

* fix after merge variable

* update test

* add nohoist ffmpeg installer

* patch

* yarn types pass

* yarn lock has binary

Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-03-24 21:34:52 -04:00
Zach Bloomquist 47410d50e5 Fix "Parse Error" when performing HTTP requests (#5988)
* Detect if NODE_OPTIONS are present in binary; if not, respawn

* Always reset NODE_OPTIONS, even if no ORIGINAL_

Co-authored-by: Andrew Smith <andrew@andrew.codes>

* Exit with correct code # from stub process

* Clean up based on Brian's feedback

* how process.versions is null, i have no idea, but it is

* add repro for invalid header char

* Always pass NODE_OPTIONS with max-http-header-size (#5452)

* cli: set NODE_OPTIONS=--max-http-header-size=1024*1024 on spawn

* electron: remove redundant max-http-header-size

* server: add useCli option to make e2e tests go thru cli

* server: add test for XHR with body > 100kb via CLI

* clean up conditional

* cli: don't pass --max-http-header-size in dev w node < 11.10

* add original_node_options to restore o.g. user node_options

* force no color

* Revert "Use websockets to stub large XHR response bodies instead of hea… (#5525)"

This reverts commit 249db45363.

* fix yarn.lock

* update 4_xhr_spec snapshot

* make 6_visit_spec reproduce invalid header char error

* pass --http-parser=legacy

* still set headers if an ERR_INVALID_CHAR is raised

* add --http-parser=legacy in some more places

* update http_requests_spec

* readd spawn_spec

* improve debug logging

* remove unnecessary changes

* cleanup

* revert yarn.lock to develop

* use cp.spawn, not cp.fork

to work around the Electron patch: https://github.com/electron/electron/blob/39baf6879011c0fe8cc975c7585567c7ed0aeed8/patches/node/refactor_alter_child_process_fork_to_use_execute_script_with.patch

Co-authored-by: Andrew Smith <andrew@andrew.codes>
2020-03-18 17:26:22 -04:00
renovate[bot] 5dfdab19f1 fix(deps): Update dependency minimist to version 1.2.5 🌟 (#6747)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-03-17 14:02:07 +06:30
renovate[bot] aad48602a4 fix(deps): Update dependency minimist to version 1.2.2 🌟 (#6726)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-16 11:41:50 +06:30