Commit Graph

93 Commits

Author SHA1 Message Date
Emily Rohrbough a869d5dd28 chore: enforce changelog entries on PR reviews (#25459)
Co-authored-by: Blue F <blue@cypress.io>
2023-01-24 15:30:33 -06:00
zachz-indeed 05d35f6bfe feat: output video file path on one row during run mode (#23915)
* fix: ISSUE-23913 output video file path on one row

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

* run ci

* run ci

Co-authored-by: Bill Glesias <bglesias@gmail.com>
2023-01-19 13:39:07 -05:00
Zach Bloomquist ebf57a82e6 test: change some skipped tests to use retries (#24124)
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
2022-12-20 01:56:10 +00:00
Matt Schile 7565282ab0 test: windows app integration tests scaffolding issues (#25032) 2022-12-07 12:08:59 -07:00
Ryan Manuel b0c0eaa508 feat: introduce v8 snapshots to improve startup performance (#24295)
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
Co-authored-by: Tyler Biethman <tbiethman@users.noreply.github.com>
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Mark Noonan <mark@cypress.io>
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
Co-authored-by: Ben M <benm@cypress.io>
Co-authored-by: Zachary Williams <zachjw34@gmail.com>
Co-authored-by: astone123 <adams@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Adam Stone <adams@cypress.io>
Co-authored-by: Blue F <blue@cypress.io>
Co-authored-by: GitStart <1501599+gitstart@users.noreply.github.com>
Co-authored-by: Mike Plummer <mike-plummer@users.noreply.github.com>
Co-authored-by: Jordan <jordan@jpdesigning.com>
Co-authored-by: Sam Goodger <turbo@tailz.dev>
Co-authored-by: Colum Ferry <cferry09@gmail.com>
Co-authored-by: Stokes Player <stokes@cypress.io>
Co-authored-by: Vilhelm Melkstam <vilhelm.melkstam@gmail.com>
Co-authored-by: amehta265 <65267668+amehta265@users.noreply.github.com>
2022-10-31 20:20:27 -05:00
GitStart f73aef54b0 fix: clean up inconsistencies in UI between sentence case and title case (#23681)
Co-authored-by: Rachel <Raquel.rudermano@gmail.com>
Co-authored-by: Rachel <rachel@cypress.io>
2022-10-14 12:54:59 -07:00
Emily Rohrbough f45d607a92 fix system tests and bug found for recreating global session after failed with validation 2022-09-21 07:40:17 -05:00
Zach Bloomquist 566a1a208c feat: gate WebKit behind experimentalWebKitSupport in prod (#23711) 2022-09-13 01:56:13 +00:00
Tyler Biethman 405e7f7ccb chore(webkit): update error stack parsing and related system tests (#23730)
* chore(webkit): update error stack parsing and related system tests

* Adding better comment

* Putting column back. Indexing at 1.

* Let's wait for WebKit fixes to land for this

* Using default name/location values already used in stack enhancing logic

* Incorrect bracket in regex

* Trying without location, as the fake location causes more problems downstream.

* Loosening regex around locations in stack replacement

* Defaulting location sans row/column

* Parsing stack lines for reporter with unique regex

* D'oh

* Making the validation against '<unknown>' more specific

* Don't want a capture group here

* Updating spec_isolation system tests

* Consolidating regex pattern to errors package

* Can just keep this global now

* Simplifying regex. Removing lineAndColumn numbers from unknown locations.

* Updating system test stack regex

* Getting better baseline

* Revert "Updating system test stack regex"

This reverts commit 2b91eff369.

* Forking normalization for webkit to track down diffs

* Ensure line or column are set before rendering in enhanced stack

* Need to be a little more flexible

* Tweaking leading newline detection

* Trying out new composed regex

* Few more tweaks for multiple leading newlines and file locations without function name

* Updating remainderOfStack pattern with proper escaping

* Cleaning up comments

* Filtering native code from absolute path logic

* Rebuild CI after outage
2022-09-12 15:40:12 -05:00
Zach Bloomquist dc9e9dc62c chore(webkit): add video recording (#23579) 2022-09-06 17:12:13 +00:00
Zachary Williams 20f89bfa32 fix: remove dependency causing semantic-release to fail (#23142) 2022-08-05 15:54:44 -05:00
Emily Rohrbough 65d29cdcf3 chore: remove dead server code (#22902) 2022-07-25 10:29:14 -05:00
Lachlan Miller f0d3a48679 feat: React 18 support (#22876)
* update cli exports

* add additional react adapters

* update system test infra to better cover react versions

* use idiomatic cy.mount and cy.unmount

* add additional test projects

* update tests

* add new modules

* remove dead code, organize code more

* add react 16 project

* update webpack to resolve react correctly

* add test for react 16

* update snaps

* add react adapters

* ignore cli/react files

* use official rollup plugin to bundle npm/react

* update yarn lock for webpack dev server tests

* update vite dev server projects

* update config

* remove console.log

* update tsconfig

* fix tests

* fix another test

* update snaps

* update snaps

* fix build

* remove react{16,17}, update tests

* update build

* add missing export

* update test

* fixing tests

* fixing tests

* update snaps

* update snaps again

* build artifacts on circle

* dont try to update rollup plugin

* update circle

* update

* add missing build step

* update deps, remove old code

* revert circle changes

* do not hoist deps from react18

* remove deps
2022-07-22 11:35:09 +10:00
Lachlan Miller 0e2011d00d chore: fix test by normalizing stdout (#22861)
* chore: fix test by normalizing stdout

* extract util function to avoid side effects during test

* update spec
2022-07-21 10:22:19 +10:00
Zachary Williams 7e0de0b0d0 fix: map framework name to dependency that contains webpack (#22774) 2022-07-15 14:36:29 -05:00
Ryan Manuel f2bce02f5d fix: issue with compilation failures in component testing (#21599)
* fix: issue with compilation failures in component testing

* add tests

* fix tests

* Refactor tests

* Fix tests

* Refactor tests

* Fix tests

* Fix paths for dependencies in system tests

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* test fix for initial esbuild failures

* Fix tests

* Add back ESLintPlugin

* Add comments around our special esbuild handling logic in vite

* Code cleanup and additional test scenario

* Add config syntax error tests

* Improve tests

* Update comment and remove unused variable

* Remove unneeded hook in webpack dev server

* Disable dev server overlay

* Revert "Remove unneeded hook in webpack dev server"

This reverts commit 98b2f269ae.

* PR comments

* Accidental removal

* Fix dedent

* PR comments
2022-05-25 18:02:05 -05:00
Zachary Williams 0f786ab893 fix: ct testing support for node 17+ (#21430) 2022-05-13 11:01:30 -05:00
Bill Glesias 373ed05298 Merge branch 'develop' into md-10.0-merge 2022-05-02 12:26:58 -04:00
Tyler Biethman 4972872a25 chore: Updating system test node modules cache logic to support binary tests (#21187)
* Updating state cache key names to limit improper fallback matches. Sorting output for cache key for cross-arch determinism.

* Trying to normalize cache output

* Lost tracking for this change somehow

* Changing key name to invalidate current cache.

* Tweaking install script

* Tweaking install script again

* Another commit to test existing cache

* Resetting keys for PR

* Whoops, this slipped into the last commit

* Missed one key rename somehow

* Update system-tests/scripts/cache-key.sh

Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>

Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>
2022-04-26 12:02:05 -05:00
Lachlan Miller aa98f2e3e2 Merge pull request #21045 from cypress-io/merge-develop-4-12
chore: merge develop into 10.0-release
2022-04-13 19:30:22 -07:00
Jess 0e7b555f93 feat: swap the #__cy_root id selector to become data-cy-root for component mounting (#20951)
* Change #__cy_root selector for CT mounting point to be a data-cy-root selector

* moving all of the gets for the container element into the mount-utils

* Force HTMLElement instead of Element

* unskip vue2 tests

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
2022-04-13 16:08:35 -04:00
David Munechika ccae965edc fix merge conflicts 2022-04-12 08:52:19 -04:00
David Munechika 6934c0398f fix(regression): cy.pause() should not be ignored with cypress run --headed --no-exit (#20877)
Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
2022-04-11 13:25:33 -04:00
Tim Griesser 4a9d6831ba chore: system test tooling improvements (#20966)
* chore: fixture tooling improvements

* simplifying the imports of the @tooling/system-tests

* A bit of cleanup

* browser export path for fixture dirs
2022-04-07 15:32:51 -04:00
Tim Griesser e1da852473 feat: add new webpack-dev-server package based on object API & bundling (#20861)
Adds the new webpack-dev-server-fresh package, exposing the new object api. This package will eventually be merged with/replace the existing webpack-dev-server

closes: UNIFY-1267
2022-04-05 12:05:33 -04:00
Lachlan Miller 164543106e chore(launchpad): work on infra for scaffold tests (#20818)
* chore: work on infra for scaffold tests

* revert

* wip

* ignore scaffolded files in linting

* add snapshot for plain TS project

* add more tests

* linting

* add temp-dir dep to data-context

* exclude scaffolded assets from linting

* bump server tsconfig lib to es2019

* bump graphql tsconfig lib

* add missing dependency

* use task to avoid test code leaking into data-context prod

* remove unused code

* remove deps

* make currentProject cross platform with path.posix and path.sep

* posix.join

* use path.posix everywhere

* update types

* correct paths and add ct framework to expected dir

* fix scaffolded files from indexHtmlFile merge

Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
2022-04-05 09:42:40 +10:00
Zachary Williams 0790e0fb3a await scaffoldProject 2022-03-23 16:11:43 -05:00
Zachary Williams 0577a52088 chore: update _cySkipYarnInstall and Fixture methods 2022-03-23 15:12:02 -05:00
Zachary Williams 3548007cb4 Merge remote-tracking branch 'origin/develop' into 10.0-release-merge-develop-03-22 2022-03-22 13:04:59 -05:00
Zach Bloomquist f2100a8bba test(system-tests): support npm for test projects (#20664) 2022-03-22 13:28:21 +00:00
Lachlan Miller 11a70337f0 chore: update types 2022-03-07 12:07:10 +10:00
Lachlan Miller 76129e26af merge in develop to 10.0-release 2022-03-07 10:44:26 +10:00
Zach Bloomquist 731c7febd1 chore: fix system tests types and add type checking (#20430)
Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>
2022-03-03 15:39:34 +00:00
Zach Bloomquist 458a88de7e Merge remote-tracking branch 'origin/develop' into merge-develop-2-28-22 2022-02-28 10:54:35 -05:00
Zach Bloomquist ffd3627e43 test: migrate module_api to system tests (#20265)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2022-02-25 23:12:05 +00:00
Tyler Biethman 599cc48956 Adding specDir handling from develop 2022-02-22 17:20:51 -06:00
Zach Bloomquist 59440ac2e5 Update system-tests/lib/system-tests.ts 2022-02-22 13:15:07 -05:00
Tim Griesser 47b1f38f62 Merge branch 'develop' into 10.0-release
* develop: (35 commits)
  fix(deps): update dependency url-parse to v1.5.6 [security] (#20270)
  chore: fix cache keys to include PLATFORM (#20279)
  chore: fix server performance flake (#20271)
  test(system-tests): support docker-based tests against built binary (#20250)
  chore: fix system-test-firefox screenshots_spec flake (#20268)
  chore(deps): update dependency fs-extra to v9 🌟 (#19939)
  fix: Wait for child process to be ready (#19792)
  fix: treat form-data bodies as binary (#20144)
  test: replace cypress-test-example-repos coverage + remove bump (#20186)
  fix(driver): update wrapErr to ignore number and boolean values (#20172)
  release 9.5.0 [skip ci]
  chore: Update Chrome (stable) to 98.0.4758.102 (#20192)
  chore: enable volar.takeOverMode
  Add span names, merge develop
  fix: Update `.type(' ')` to not emit clicks when the keyup event has been prevented (#20156)
  test: remove redundant "other projects" CI jobs (#20133)
  chore(driver): move cy.focused and cy.root into their own files (#20054)
  Move sending root event to own script
  chore: release @cypress/vue-v3.1.1
  chore: release @cypress/react-v5.12.3
  ...
2022-02-22 12:40:07 -05:00
Brian Mann 6f1353ed80 Merge branch '10.0-release' into 10.0-release-merge-4b50f9ee 2022-02-19 22:24:03 -05:00
Brian Mann 9a8987ed5f chore: remove system test it.only and prevent CI from ever running onlys (#20276)
* remove accidental system test it.only

* prevent system tests from running in CI if set to run exclusively with it.only(...)
2022-02-18 19:01:12 -05:00
Zach Bloomquist ad2f4de844 test(system-tests): support docker-based tests against built binary (#20250)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2022-02-18 23:37:22 +00:00
Brian Mann da48210216 Merge branch '10.0-release' into 10.0-release-merge-4b50f9ee 2022-02-18 15:11:59 -05:00
Barthélémy Ledoux 31376a6bb6 test: use async copy for scaffolding project (#20181) 2022-02-14 16:21:52 -06:00
BlueWinds ce956dedb3 Add span names, merge develop 2022-02-14 08:21:15 -08:00
BlueWinds ac1faf4965 Merge remote-tracking branch 'origin/develop' into issue-19403-perf-reporter-changes 2022-02-14 08:19:17 -08:00
Tim Griesser 678bedeca6 Merge branch 'develop' into 10.0-release
* 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)
2022-02-13 15:36:48 -05:00
Barthélémy Ledoux 759449c440 feat: detect component testing env (#20002)
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
2022-02-11 15:38:09 -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
BlueWinds 961e764037 Move sending root event to own script 2022-02-10 14:21:44 -08:00
BlueWinds f7c46fc472 Refactor async data into more convenient helper 2022-02-08 14:35:00 -08:00