Commit Graph

85 Commits

Author SHA1 Message Date
Lachlan Miller 65cb16f900 refactor: shared routing for E2E and CT (#27618)
* remove server e2e

* missing functions

* fixing tests

* minimize server-ct

* linting

* trying to fix

* remove unused file

* routes

* update usage

* remove routes

* remove ct specific route

* revert code
2023-08-25 07:47:42 +10:00
Lachlan Miller 0107efbc3e feat: In-App Run Notifications (#27078)
Co-authored-by: Stokes Player <stokes@cypress.io>
Co-authored-by: astone123 <adams@cypress.io>
2023-06-28 10:23:21 -04:00
Matt Schile a94a48ed31 fix: use open instead of connectToNewSpec in electron (#27128)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2023-06-27 09:07:39 -05:00
Bill Glesias fe54cf504a fix: chrome crash when CRI client is disconnected (#27116)
* fix: fix chrome crash when CRI client is disconnected

* chore: build binaries for chrome recovery crash for users to test

* chore: add changelog entry
2023-06-26 15:24:18 -04:00
Dave Kasper 9c4d5f7db6 chore: add browser state action for debug (#26884)
* chore: add browser state action for debug (#26763)

* Address PR comments
- remove unneeded async and test context
- genericize openProject function

* Revert route change, update spec description
2023-06-02 14:40:12 -05:00
Mike Plummer 58b9ccc0a8 chore: Implement runSpec mutation (#26782) 2023-05-24 07:32:49 -05:00
Matt Henkes 62f58e00ec chore: Add open telemetry to cypress to allow us to monitor the performance of the app overtime (#26305)
* initial commit, a kinda working prototype

* Ready to test in CI

* "SyntaxError: Cannot use import statement outside a module" I blame VS code for always inserting the wrong dependency

* try using built js instead of the ts file

* typescript fixes?

* get version correctly, don't use optional chaining in child process.

* trying this, idk

* try running telemetry for driver-integration-tests-chrome

* fix missing spans, add more attributes for some spans

* fix missing spans and add suite spans

* types

* Remove un-used require

* remove spans for describe blocks in favor of the full title for tests

* migrate to sync resource discovery, start new custom exporters for spans

* encrypted

* localhost

* don't do things on child process

* latest changes

* update server start span time / add v8 snapshot span & update command span names

* prepare for sync

* don't send blank key

* make telemetry work again for sending directly to honeycomb

* web-socket exporter

* Add in IPC exporter and message the child process before disconnecting

* Use the cloud api by default

* move cloud span exporter into telemetry package

* shutdown fixes

* fix enabled

* improve types

* run in ci

* yml is the worst

* type!

* add spans for timing insights for visible areas of improvement

* type errors

* lets try sending data to staging

* types

* types again

* remove problematic attributes

* clean up exporters

* i like this better even though it doesn't seem to matter much

* some self review cleanup

* Update comment

* add debug messages

* mocha tests

* actually exit with the right code... oops

* simple mistake... have to look into how to fix with ts...

* try this i guess

* don't return undefined

* read me diagram

* color?

* no rect

* moar diagram

* docs!

* formatting

* build more binaries

* Supposedly fix cypress in cypress test failures

* test 'fixes'

* try this instead

* do not transpile cypress packages dir

* lets try escaping our regex string

* Add some diagnostics to help test the built binary....

* try a more complex solution

* fix tests probably

* just ignore the specific file

* fix unit tests

* cr updates

* Apply suggestions from code review

Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Pr updates

* don't change the command queue

* move encoding and decoding telemetry context for ipc to the telemetry package

* build darn it

* plead for mercy from the testing gods, i merely wished to have named test reports, but clearly i have overreached.

* pr updates, send record key

* pr review

* optional chaining fails tests

* Apply suggestions from code review

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

* tests for cloud-span-exporter

* bad merge

* adding tests for the remaining exporters

* note

* docs

* Correctly set test under the current run span for component testing

* gate sending the message.

* pr updates

* finally, fingers crossed.

---------

Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2023-04-08 21:18:02 -05:00
Emily Rohrbough 1c5a67fa92 fix: handle async before:spec event handler (#26055)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2023-03-13 08:53:59 -05:00
Bill Glesias 6055af37b0 Merge branch 'develop' of github.com:cypress-io/cypress into release/12.0.0 2022-11-02 10:27:39 -04:00
Matt Schile 69873ae988 chore: remove experimentalSessionAndOrigin flag (#24340)
BREAKING CHANGE: removed experimentalSessionAndOrigin flag. testIsolation defaults to strict
2022-10-24 08:49:13 -06:00
Matt Henkes 382e0b525d fix: detect chrome browser process and tab crashes to no longer hang in CI (#24338)
* Handle chrome tab and browser crashes.

* handle process crashes and add system tests

* handle crashing on windows

* updating comment

* update unit tests

* Update packages/server/lib/browsers/index.ts

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

* Apply suggestions from code review

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* fix flaky system test probably

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2022-10-21 15:10:26 -05:00
Emily Rohrbough 6968c8ea7a tests 2022-09-19 15:18:21 -05:00
Zach Bloomquist 566a1a208c feat: gate WebKit behind experimentalWebKitSupport in prod (#23711) 2022-09-13 01:56:13 +00:00
Zach Bloomquist dc9e9dc62c chore(webkit): add video recording (#23579) 2022-09-06 17:12:13 +00:00
Zach Bloomquist bcd7548d74 refactor: move more of video capture into browser automations (#23587) 2022-08-31 18:55:28 +00:00
Emily Rohrbough c8b1b30323 fix: run "before:spec" plugin event when experimentalInteractiveRunEvents is enabled (#23634)
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Rachel <Raquel.rudermano@gmail.com>
2022-08-31 13:40:11 -05:00
Zach Bloomquist 3c2fea216b chore(server): convert remaining browsers code to typescript (#23556) 2022-08-29 19:47:05 +00:00
Zach Bloomquist bd0d38f352 chore(server): convert modes/run to typescript (#23536)
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2022-08-25 17:20:53 +00:00
Lachlan Miller 91beb9012c feat: experimental single tab run mode for component testing (#23104)
* revive logic to run CT in a single tab

* add feature flag: experimentalSingleTabRunMode

* remove log

* reset browser state between tests

* document single tab run mode experiment;

* add system test for experimental run mode

* fix snapshots

* use more simple project for testing

* additional guard;

* fix test

* Apply suggestions from code review

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

* destroy aut after each spec

* update snapshot

* fix types

* add experiment flag error

* add warning when using experimental flag with e2e

* build binaries for experimentalSingleTabRunMode feature

* build binaries take 2

* make error message more open ended

* destroy AUT later in run mode lifecycle

* add additional assertion around experimental flag

* simplify error

* remove test code from production code

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2022-08-16 10:44:14 +10:00
Bill Glesias 2612219501 feat: add modify obstructive user agent code for electron to strip el… (#22958)
* feat: add modify obstructive user agent code for electron to strip electron and cypress out of the UA string.

* fix user agent destructuring error within unit tests

* remove explicit CDP command and opt for _setUserAgent. add test to not override passed in user agent via config

* add get user agent method to electron and update tests

* move user agent override in electron under experimentalModifyObstructiveThirdPartyCode over experimentalSessionAndOrigin

* move position of setting user agent to browser launch, hopefully fixing issues in CI with parallelization between parent/child processes

* update stale documentation and remove no longer necessary stub of getUserAgent

* add user agent to get user agent debug log

Co-authored-by: Matt Schile <mschile@gmail.com>
2022-07-29 22:46:27 -04:00
Adam Stone 1b688694fe fix: Ensure that file watchers are closed before Electron exits (#22606)
* Adding prototype before-quit handler to handle async teardown.

* Getting binary builds

* Let's try this then

* Working the async changes backwards, hope I got them all. Unit tests will be a disaster currently.

* Actually getting build artifacts for testing

* Moving logic to server interactive/run

* fix: Fix some tests

* fix: Revert changes to circle config

* fix: Fix some tests

* fix: Fix more tests

* fix: Remove dead code comment

* fix: Fix ProjectDataSource tests

* fix: Add comment prefix

* fix: Remove comment and unnecessary async

* fix: Build Mac binary

* Reverting run changes

* Addressing PR comments. Cleaning up a few naming quibbles I had.

* Addressing TODO regarding onLoadError watcher cleanup.

* Correcting catch

* Fighting some unref errors on these catches

* Reverting making this private en lieu of binding

* Should have left these as instances, whoops

* Removing unnecessary test that was previously skipped

* Adding a couple cheap unit tests for the new interactive mode behavior

Co-authored-by: Tyler Biethman <tbiethman@gmail.com>
Co-authored-by: Tyler Biethman <tbiethman@users.noreply.github.com>
2022-07-17 15:57:10 -05:00
Chris Breiding 5573fe50b0 fix: Make cross-origin document.cookie work (#22594) 2022-06-30 14:03:21 -04:00
Chris Breiding a21c942ee4 fix: Improve cross-origin cookie handling (#22320) 2022-06-23 11:00:52 -04:00
Ryan Manuel 203758f708 fix: properly run multiple specs in run and headed mode on linux and windows in chrome (#22168)
* fix: properly run multiple specs in run and headed mode on linux and windows

* fix: properly run multiple specs in run and headed mode on linux and windows

* Update test

* Update test

* Fix issue with running headed in linux and windows

* Improve test

* Update packages/server/lib/browsers/browser-cri-client.ts

* PR comments

* PR comments

* Fix test failure due to refactor

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
2022-06-10 09:38:06 -05:00
Bill Glesias c8331fc54f set remote to primary domain when app is reserved in e2e testing mode 2022-05-04 10:38:48 -04:00
Bill Glesias 252566ce64 Merge branch '10.0-release' of github.com:cypress-io/cypress into md-10.0-merge 2022-05-02 13:34:59 -04:00
Zachary Williams 00a0f5a0e9 fix: restart dev-server on config change (#21212)
* fix: restart dev-server on config change

* close dev server before cp is spawned

* fix test that is failing... not sure why

* cleanup unsued close events

* remove wait

* add back in close for unit tests

Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
2022-05-02 12:05:01 +10:00
Bill Glesias bbd9e7f1b2 Merge branch 'develop' into md-10.0-merge 2022-04-29 10:39:54 -04:00
Matt Schile 27e1afbdd7 chore: (multi-domain) renaming flag to experimentalSessionAndOrigin (#21053) 2022-04-13 10:50:17 -06:00
Matt Schile dcbc68b8e7 chore: (multi-domain) updating experimental flag to experimentalLoginFlows (#20942) 2022-04-06 15:08:18 -06:00
Ryan Manuel 6bace98a24 PR comments 2022-03-30 21:13:47 -05:00
Alejandro Estrada 61f7cfc592 fix: scope config to current testing type (#20677)
* fix: scope config to current testing type

* Revert options changes

* Fix some tests

* Fix more tests

* Fix more tests

* Fix more tests

* Update options

* Fix tests

* Fix tests

* Add comments

* Remove un-needed quote

* Fix test

* Fix tests
2022-03-23 19:06:36 -05:00
Ryan Manuel 111949a869 feat: add subscription for specs changing (#20657)
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Jess <jess@jessicasachs.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: David Munechika <david.munechika@gatech.edu>
Co-authored-by: BlueWinds <blue@everblue.info>
2022-03-22 11:53:00 -05:00
Chris Breiding 22b35be276 fix(multi-domain): Handle SameSite cookies (#20450) 2022-03-22 09:57:12 -04:00
Zachary Williams 3a53814e16 fix: can't switch from electron browser to another (#20563)
Co-authored-by: Jess <jess@jessicasachs.io>
2022-03-14 11:42:20 -05:00
Tyler Biethman 659c527707 fix: Relaunching app when Focus is pressed after app has closed (#20352)
* fix: Updating Focus behavior to relaunch browser if runner has been closed

Also updating firefox executable used to ensure focus behavior continues working for firefox

* Adding unit tests
2022-02-24 15:51:45 -06:00
Brian Mann 923ab0a9ba export additional properties on error, update refs, fix tests 2022-02-15 02:03:14 -05:00
Ryan Manuel 655090330f feat: Close and reopen a new tab in between tests to get around a memory leak (#19915) 2022-02-08 10:16:03 -06:00
Alejandro Estrada 5d52758d82 feat: validate specPattern root level (#19980)
* feat: validate specPattern root level

* Fix/add tests

* Fix test

* Update specExcludePattern

* Fix tests

* Fix/add tests

* Fix/add tests

* Fix tests

* Rename specExcludePattern to excludeSpecPattern

* Fix tests
2022-02-04 10:48:10 -05:00
Alejandro Estrada 805ed11345 fix: refactor set specs by specPattern (#19953)
* fix: refactor set specs by specPattern

* Update types

Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
2022-01-31 10:48:38 -05:00
Zachary Williams c49f045f82 feat: launchpad browser select (#19830)
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
2022-01-25 16:02:29 -06:00
Ryan Manuel ed51bcbdda feat: Set up cypress in cypress (#19602)
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2022-01-14 17:07:07 -06:00
Tim Griesser a9d0bc952b fix: various lifecycle issues, followup to #19572 (#19683)
* fix: various lifecycle issues, followup to #19572
2022-01-12 17:45:46 -05:00
Tim Griesser bfc032a2d4 fix: open browser at correct time during lifecycle (#19572) 2022-01-12 13:41:25 -05:00
Lachlan Miller 1f28650d68 chore: change integration->e2e throughout code base (#19345)
* hacky way to update snapshots

* new hack to update snapshots

* trying again

* hacky fix

* ci: snapshots

* ci: snapshots

* snapshots

* mas updates

* update spec API

* fix test

* fix test

* update

* update test

* fix test

* update plugin

* update spec

* webpack optinos

* Update launchpad tests

* fix screenshot paths

* updated snapshot

* change pattern

* guard

* fix smoke test

* patch code coverage

* update percy config

* fix specs

* try updating example project

* update snapshots

* remove old test

* remove snapshot hack

* add back appveyor

* remove old code

* update snapshot

* Fix tests

* wip

* revert snapshot

* reverted all snaps

* remove only

* remove commnet

* remove old code

* reverted file

* lint

* revert video compression spec

* update snapshot

* update spec path logic

* update snap

* updated snap

* snaps

* snaps

* fix spec

* rename ignoreTestFiles to ignoreSpecPattern

* update screenshot dir for runner-ct

* update deprecations

* update

* upate

* fix test

* update snaps

* update snap

* updating snap

* added missing snaps

* updated cypress run mode integration spec

* electron snapshot

* update default

* rename integration->e2e

* rename integration->e2e in packages

* spec.ts -> cy.ts

* spec.ts -> cy.ts

* _spec.js -> .cy.js

* .spec.js -> .cy.js

* .spec.js -> .cy.js

* update config

* update config

* update

* update spec ext

* update config

* update config

* ensure newly scaffold specs are cached

* fix launchpad spec

* types

* update test

* transpile based on spec pattern

* add back example

* remove unnecessary async and nodeVersion

* spec.tsx -> cy.tsx

* update stop-only config

* exclude CT from E2E

* removed old test

* update spec pattern in angular

* update spec pattern in design system

* update all specs npm npm/react

* update spec name

* update spec patterns

* remove old script

* update tests path

* update config

* fix test

* update snapshots

* update examples

* update ignore patterns

* update snapshots

* unit tests

* update tests

* patch code coverage

* revert spec name

* rename a lot of speces

* update

* update spec ext

* update spec

* update spec

* update spec ext

* update lint

* update rules

* update lint

* snaps

* update spec dir

* update paths

* remove unused pluginsfile config opt

* update smoke test

* update create cypress tests

* update gitignore

* update types

* update paths

* update spe

* update test

* update all snaps

* update tests

* update http request spec

* update spec file names

* snaps

* update snaps

* updated snaps

* update snaps

* spacing

* spacing

* spacing

* spacing

* fix perf spec

* update

* update

* revert

* update

* snaps

* snaps

* rename spec

* update snaps

* snapshots

* update tests

* update tests

* update

* fix

* update test projects

* update

* updating

* update run-ct test

* update spec pattern and add defensive check around platform

* fix system test script

* update snap

* snaps

* update test

* update spe

* update for FF

* ff

* remove unused feature flag

* added tests

* fix react example

* update test

* update config

* update test projects

* update snapshots

* correctly remove private prefix on darwin

* fix types

* rename integration -> e2e

* update config

* updatec onfig

* fixing app scaffold integration tests

* remove code

* exclude e2e specs from CT

* update snapshot

* integration->e2e

* update path for test file in ts project

* update schematic

* use updated branch for CI

* update config

* update config

* revert some changes

* remove built code

* revert changes

* update gitignore

* include test spec

* update scaffold script

* wip: renames

* script

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* mass rename

* rename

* rename

* fix angular

* update spec in create cypress tests

* remove old file

* fix tests

* access specPattern in a more idiomatic fashion

* do not duplicate variable

* pass correct params to findSpec in files controller

* add comment explaining spec finding

* remove reference to old file that no longer exist

* resolve conflicts

* fix types

* transpile cypress dir

* update circle ymlg

* update spec pattern for example project

* supportFile: false

* fix circle yml

* update test glob

* rename some specs to use correct .cy ext

* more ext renames

* rename spec

* update extensions

* update extensions

* update specs

Co-authored-by: estrada9166 <estrada9166@hotmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2022-01-11 16:29:55 +10:00
Zachary Williams f953c59e9a feat: add spec watcher to data-context (#19583)
* feat: add spec watcher to data-context

* fix typo

* attempt to fix flake

* fix path.join

* if this fixes it I'm going to be upset

* remove unused code

* address comments
2022-01-10 12:30:38 +10:00
Lachlan Miller a1906e6996 chore: fix temporarily skipped specs on 10.0-release (#19611)
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
2022-01-07 10:47:36 -07:00
Lachlan Miller 792980ac12 feat: support specPattern, deprecate integrationFolder and componentFolder (#19319)
* use new specPattern API

* remove projectApi.findSpecs

* do not require integration folder

* support --spec

* support --spec

* remove old code

* remove old code

* nuke old code

* no appvetor

* update

* correct url for ct

* work on migrating launchpad

* update ct spec url

* types

* types

* dead code

* remove old endpiont

* revert back circle.yml

* update missing config

* delete spec util

* update config

* update config

* config again

* update spec pattern

* updated vue config

* update spec pattern for ui components

* update config for vite dev server

* update snapshots

* update config

* update design system config

* fix spec pattern in reporter

* update default

* update deprecated spec snapshots

* update system tests

* update run mode output

* revert changes

* lint

* remove scaffold tests

* update angular

* fix CT

* update circle yml

* fix system tests for ct

* fix tests

* work on server unit tests

* patch package

* patch package again

* update test

* try not to rely on config async loading too much

* normalize specPattern to array

* update snapshot

* use base name

* deal with react-scripts later

* update snapshot

* hacky way to update snapshots

* new hack to update snapshots

* trying again

* hacky fix

* ci: snapshots

* ci: snapshots

* snapshots

* mas updates

* update spec API

* fix test

* fix test

* update

* update test

* fix test

* update plugin

* update spec

* webpack optinos

* Update launchpad tests

* fix screenshot paths

* updated snapshot

* change pattern

* guard

* fix smoke test

* patch code coverage

* update percy config

* fix specs

* try updating example project

* update snapshots

* remove old test

* remove snapshot hack

* add back appveyor

* remove old code

* update snapshot

* Fix tests

* wip

* revert snapshot

* reverted all snaps

* remove only

* remove commnet

* remove old code

* reverted file

* lint

* revert video compression spec

* update snapshot

* update spec path logic

* update snap

* updated snap

* snaps

* snaps

* fix spec

* rename ignoreTestFiles to ignoreSpecPattern

* update screenshot dir for runner-ct

* update deprecations

* update

* upate

* fix test

* update snaps

* update snap

* updating snap

* added missing snaps

* updated cypress run mode integration spec

* electron snapshot

* ensure newly scaffold specs are cached

* fix launchpad spec

* types

* update test

* transpile based on spec pattern

* add back example

* remove unnecessary async and nodeVersion

* removed old test

* update spec pattern and add defensive check around platform

* remove unused feature flag

* added tests

* fix react example

* update test

* update config

* fix spec finding in run mode

* fix tests

* fixing specs

* fix switching between specs

* remove invalid test

* increase timeout

Co-authored-by: estrada9166 <estrada9166@hotmail.com>
2022-01-04 14:24:24 +10:00
Tim Griesser 4626f7481c feat: ProjectLifecycleManager & general launchpad cleanup (#19347)
See #19347 for full summary

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: estrada9166 <estrada9166@hotmail.com>
Co-authored-by: Alejandro Estrada <estrada9166@gmail.com>
Co-authored-by: Jess <jess@jessicasachs.io>
2021-12-21 21:28:44 -05:00
Tim Griesser 806a31a989 refactor: Improved support for e2e testing (#19306) 2021-12-09 21:23:58 -05:00