Commit Graph

43 Commits

Author SHA1 Message Date
Tim Griesser 4dd4e35378 chore: remove httpstat.us dependency, add utility route for cy-in-cy (#31961) 2025-06-27 13:44:33 -04:00
Adam Stone-Lord a5ba8c497c internal: (studio) initialize cloud studio asynchronously (#31469)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
2025-04-29 09:37:44 -04:00
Ryan Manuel 0daf7e639f chore: support studio lifecycle in protocol (#31239)
* update url with studio params

* updates

* spec updates

* adding tests

* updating changelog

* skip adding visit log during start

* update url support

* cy origin tests

* fix tests

* updates

* update origin test

* chore: support studio lifecycle in protocol

* merge changes

* fix types

* fix tests

* fix tests

* fix tests

* fix more tests

* fix more tests

* fix more tests

* fix test

* fix bugs

* fix tests

* attempt to fix test

* further fixes

* improve cloud studio enablement

* refactoring

* remove new dom link

* fix last test

* Update packages/app/cypress/e2e/studio/studio.cy.ts

* Update packages/server/lib/project-base.ts

* Update packages/proxy/lib/http/request-middleware.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* PR comments

* fix build

* fix build

* update

* Update packages/server/lib/project-base.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix unit test

* rework save logic

---------

Co-authored-by: Matthew Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2025-03-13 20:30:29 -05:00
Matt Schile b9103af3fd misc: (studio) add support for url routing (#31205)
* update url with studio params

* updates

* spec updates

* adding tests

* updating changelog

* skip adding visit log during start

* update url support

* cy origin tests

* fix tests

* updates

* update origin test

* add a wait

* update

* pr updates

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2025-03-10 21:36:18 -06:00
Jennifer Shehane 43f8c82229 chore: convert some server js files to ts (#31177)
* chore: convert some server js files to ts

* Update packages/server/lib/controllers/spec.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/server/lib/controllers/spec.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix type issues

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2025-03-03 09:47:03 -05:00
Ryan Manuel 2dce6d5831 chore: add logic to dynamically load studio functionality (#31033)
* chore: add logic to dynamically load new studio functionality

* fix types

* fix tests

* fix

* fix tests

* fix tests

* additional changes to lock things down

* clean up code

* Update guides/studio-development.md

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* Update protocol-development.md

* additional headers

* PR comments

* Update packages/server/lib/cloud/api/get_app_studio.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/app/vite.config.mjs

* update studio/protocol development guides

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
2025-02-14 14:54:15 -06:00
Jennifer Shehane 92e428a357 chore: add type linting + compilation checks to packages (#30776)
* chore: add type linting + compilation checks to runner package

* empty commit

* A bunch of tslint fixes

* wow it is building

* Fix issue with CT not mounting correctly with comments within it

* Fix net-stubbing.ct.ts failures

* Fix tslint: disable comment

* move target into compilerOptions

* fix tslint disable comment

* update proxy-logging to undo changes

* standardize the tslint:disable comments

* fix comment

* fix the banner content not displaying and write a test for this situation

* fix ct reference

* put target to es2020

* actually set the property with replaced title

* Update packages/reporter/src/hooks/hook-model.ts

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

* Fix eslint/tslint settings for system-tests with vue 3

* bump CI cache

* update types/react resolution

* add return

* lint fix

* tslint disable for empty blocks

* exclude dist files from ts linting

* update to exclude all dist folder

* exclude dist file

* change to await

* fix line numbers of stack trace with linting updating vue file

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2025-01-23 14:55:52 -05:00
Chris Breiding ec89901b9d fix: prevent redirect loop when chrome https upgrade is detected (#28650) 2024-01-09 15:25:57 -05:00
Ryan Manuel 228a117e82 feat: swap websocket transport with cdp add binding/evaluate (#27592)
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2023-08-25 21:05:33 -05:00
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
Bill Glesias ca01e29ab8 fix: re include document domain injections for spec-bridge and injection and disable origin-agent-cluster (#25013)
* Revert "chore: remove document.domain usage for cross-origin testing (#24945)"

This reverts commit a3d3074e70.

* fix: set origin-agent-cluster=?0 for the spec bridge iframe

* re apply comment that was reverted in 1fa1246b5c

* Update packages/server/lib/routes-e2e.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* chore: update document.domain immutable target from chrome 106 -> chrome 109

Co-authored-by: Matt Schile <mschile@cypress.io>
2022-12-06 17:52:48 -05:00
Emily Rohrbough b08bc270e9 chore: remove dead code -- lives in data-context/src/sources/HtmlDataSource.ts now (#23542) 2022-08-29 12:15:05 +10:00
Bill Glesias 7e79860466 Merge branch '10.0-release' of github.com:cypress-io/cypress into md-10.0-merge 2022-04-29 10:41:47 -04:00
Bill Glesias bbd9e7f1b2 Merge branch 'develop' into md-10.0-merge 2022-04-29 10:39:54 -04:00
Tyler Biethman 7eca8c202c feat: Additional preparations for Chrome's immutable domain updates (#21208)
* feat: Updating client route response headers to continue support for mutable domains

* Updating route integration test
2022-04-28 10:53:21 +10:00
Chris Breiding 3e6d6bfe15 chore: Updates based on PR feedback (#21137)
* add generic to cy.origin type

* fix log type, update/add comments

* fix comment indentation

* specific generic

* move RemoteState to internal types

* add on links to experimental flag descriptions

* chore: reduce nesting by flipping condition

* fix test title

* simplify failing log

* rename variable

* delete error property

* fix types

* fix type

* remove unnecessary todo

* update wait test

* jquery -> this

* update comment

* remove vestigial autoRun

* use finally

* re-throw non-security errors

* move back getting index

* add new state types

* remove unnecessary export

* startsWith -> includes

* it -> them

* update system test

* remove use of promise constructor

* Revert "remove use of promise constructor"

This reverts commit 35ccc28b6f.

* log errors from Page.getFrameTree

* test if anything breaks when removing optional chaining operator

* remove vestigial file

* handle queue ending in cross-origin driver

* fix coordinates spec

* improve chrome/firefox check in extension

* improve secure cookie regex

* use production mode for cross-origin driver bundle

* adding remoteStates.getPrimary

* catch and ignore queue errors

* remove optional chaining in postMessage handler

* removed unnecessary async

* update frame tree on cri client reconnect

* fix formatting

* renaming remoteStates variable

* prevent requests from being paused if experimentalSessionAndOrigin flag is off

Co-authored-by: Matt Schile <mschile@cypress.io>
2022-04-22 14:58:02 -05:00
Matt Schile fedb65c97c chore: (multi-domain) support multiple remote states (#20752) 2022-03-28 15:26:51 -06:00
Lachlan Miller 721e586625 feat: use unified app for run mode (#19625)
* 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>
2022-01-20 15:02:00 +10:00
Tim Griesser f750aea088 refactor: namespace & consolidate launchpad / graphql routing (#19746)
* refactor: namespace & consolidate launchpad / graphql routing
* fix: ensure vite dev flow works
* fix: proper tslint, fix race condition
2022-01-19 17:43:42 -05: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 0d5eae1b62 refactor: consistent getCtx in server, optional chaining for this._io calls (#19699)
* refactor: consistent getCtx in server, optional chaining for this._io calls
* fix: ensure the child process is cleaning up after itsself
2022-01-14 11:09:12 -05: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 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 2eb0ff551a feat: improve vite DX (#18937) 2021-11-17 11:24:04 -05:00
Lachlan Miller ded63adeb2 feat(app): remove __vite__ route and default to unified runner (#18909)
Co-authored-by: Mark Noonan <mark@cypress.io>
2021-11-15 12:32:10 -05:00
Tim Griesser 2cf78aab92 refactor: consolidate data-context (#18776) 2021-11-08 23:13:18 -05:00
Tim Griesser 4e25061e8e feat: prerendering data for app load (#18704)
* feat: prerendering data for app load

* Fix deps

* Fix create-cypress-tests in build
2021-11-01 11:21:26 +10:00
Lachlan Miller e82fb7632b fix conflicts 2021-10-13 15:45:16 +10:00
Lachlan Miller 61c8f6bb28 merged in develop 2021-10-13 15:43:37 +10:00
Lachlan Miller 9ca177c4be feat(app): run e2e tests (#18448)
* update server

* add launchMode param

* update logic

* update types

* update gql

* basic WIP for e2e

* hot reload

* dead code

* try to conditionally launch existing runner

* types

* update server

* params

* append gql port

* override to default ot e2e runner on launchpad and app e2e tests

* do not set launchpad variable for e2e runs

* use window to get graphql port and correctly run e2e conditionally using CIRCLECI env. var
2021-10-13 12:13:15 +10:00
Tim Griesser d841e1331f refactor: Data context cleanup & IPC bindings for data push (#18357) 2021-10-11 12:13:41 -04:00
David Munechika 1d08280f4a fix(driver): cy.pause() should not be ignored with cypress run --headed --no-exit (#18358) 2021-10-08 21:17:34 +00:00
Lachlan Miller db3e7b3aab chore: merge in develop to unified-desktop-gui (#18388)
* chore: merge in develop

* fix types
2021-10-07 17:29:14 +10:00
Lachlan Miller d857e7fe42 chore(server): share client route (#18215) 2021-10-06 10:05:44 +10:00
Ben Kucera 9f9cf9e8b6 chore: fix broken firefox focus tests, bump resource class of chrome-beta job (#18133) 2021-09-21 09:34:48 -04:00
Lachlan Miller 5955544fc0 chore(server): share common routes (#18055) 2021-09-13 09:09:56 -04:00
Lachlan Miller 62106a8f36 update imports 2021-09-10 12:39:06 +10:00
Kukhyeon Heo 1570383140 fix: Cypress.testingType should not be undefined. (#17931)
* fix

* Use Cypress type.
2021-09-01 00:19:50 +10:00
Lachlan Miller ab401ecd35 chore: use import type syntax (#17864)
* chore: use import type across repo

* chore: use import type across repo

* chore: use import type across repo

* chore: use import type across repo

* update exports

* update test

* update import type

* update types

* use import type in driver

* correctly export function

* revert test

* remove unrelated code

* revert code

* improve type imports

* override for reporter
2021-08-25 09:11:56 +10:00
Ben Kucera 6f32561d6f feat: add session support (#14350) 2021-08-04 10:23:45 -04:00
Lachlan Miller b3dd061c52 chore(server): remove need to pass project object to Server#open (#17435)
* only pass necessary values to createRoutes

* simplify object passed to createRoutes

* fix tests

* update imports

* use correct types

* types

* remove unused method
2021-07-26 11:20:28 +10:00
Lachlan Miller b945b8197e chore(server): reduce coupling between methods to instantiate a project (#17200)
* wip

* wip: use async/await

* slowly refactor

* slowly refactor

* use typescript

* use async/await

* update spec

* do not use tap because bluebird sucks

* refactor

* update

* remove bluebird

* update

* remove then

* change to async/await to make it easier to reason about

* remove more bluebird

* no more bluebird

* remov ts ignore

* do not tap

* refactor

* simplify cfg

* move static methods to separate file

* update snapshot

* comment out test

* simplifying options merging

* update tests

* change order of options

* move code out of project-base

* update tests

* update tests

* type reporter

* simplify onWatchSettings function

* sep starting websockets and watching settings. reduce need to pass large cfg object

* move util functions out of project class

* move tests to new file

* update test

* move code around

* update tests

* remove need to pass options to getConfig

* fix tests

* separate get and init config

* set browser warnings in initializeConfig

* move Ct specific concerns to same function

* do not pass config to initializeSpecStore

* remove onOpen function

* improve types

* update typing errors

* update types

* types

* fix types

* update tests

* update tests

* fix tests

* update tests

* comment back in test

* update methods

* update types

* add defensive code against config.clientRoute

* do not use async

* update tests

* use same baseUrl for proxy regardless

* remove comment

* revert change to baseUrl
2021-07-13 11:32:59 +10:00
Lachlan Miller 8e11b2d3b2 chore(server,server-ct): share initPlugins and spec watcher via Server Base class #16974 (#16981)
* move specs store to server

* customize spec directory in store

* share plugins via project base

* shared updated config

* share spec finding logic

* fix test

* share spec store code

* remove comment

* try fixing test

* move code around

* move more code

* share sendSpecList

* comment out line

* comments

* logs

* stub chokidar

* remove stub

* move spec watcher to later in the lifecycle

* refactor watcher

* stub out chikidar

* remove old code

* refactor

* update server-ct

* fix implementation

* fix implementation

* fix test

* update types

* add back check for config

* add comment

* make server base abstract

* fix type

* export interface

* move routes to TS

* update types

* types

* fix types

* correctly pass specs store in test

Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
2021-06-23 10:35:12 +10:00