From a617d424c451498c444ba2e21ebb53ad4e09eb0f Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Tue, 23 Apr 2024 15:57:38 -0400 Subject: [PATCH 01/10] chore: update browser internal images to chrome 124 and firefox 125 [run ci] --- .circleci/workflows.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index 23358e95ad6b..d3fdaba05d8d 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -83,7 +83,7 @@ executors: # the Docker image with Cypress dependencies and Chrome browser cy-doc: docker: - - image: cypress/browsers-internal:node18.17.1-chrome118-ff115 + - image: cypress/browsers-internal:node18.17.1-chrome124-ff125 # by default, we use "medium" to balance performance + CI costs. bump or reduce on a per-job basis if needed. resource_class: medium environment: @@ -93,7 +93,7 @@ executors: # Docker image with non-root "node" user non-root-docker-user: docker: - - image: cypress/browsers-internal:node18.17.1-chrome118-ff115 + - image: cypress/browsers-internal:node18.17.1-chrome124-ff125 user: node environment: PLATFORM: linux From 6ae7347b4286c293cb0bb9a459c68e2eb8eb60d4 Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Tue, 23 Apr 2024 16:38:34 -0400 Subject: [PATCH 02/10] update screenshot sizes for chrome as they have changed in the chrome 124 and is ultimately out of our control since the options passed into the CLI are STILL not respected [run ci] --- .../component_testing_spec.ts.js | 4 +- system-tests/__snapshots__/retries_spec.ts.js | 4 +- .../vite_dev_server_fresh_spec.ts.js | 56 +++++++-------- .../webpack_dev_server_fresh_spec.ts.js | 70 +++++++++---------- 4 files changed, 67 insertions(+), 67 deletions(-) diff --git a/system-tests/__snapshots__/component_testing_spec.ts.js b/system-tests/__snapshots__/component_testing_spec.ts.js index 48e435796b01..e3531e039403 100644 --- a/system-tests/__snapshots__/component_testing_spec.ts.js +++ b/system-tests/__snapshots__/component_testing_spec.ts.js @@ -786,9 +786,9 @@ exports['experimentalSingleTabRunMode / executes all specs in a single tab'] = ` (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/1_fails.cy.js/simple failing spec -- fails (fai (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/1_fails.cy.js/simple failing spec -- fails (fai (1280x633) led).png - - /XXX/XXX/XXX/cypress/screenshots/1_fails.cy.js/simple failing spec -- fails agai (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/1_fails.cy.js/simple failing spec -- fails agai (1280x633) n (failed).png diff --git a/system-tests/__snapshots__/retries_spec.ts.js b/system-tests/__snapshots__/retries_spec.ts.js index bdb6f5e3ba4d..9e99c236d055 100644 --- a/system-tests/__snapshots__/retries_spec.ts.js +++ b/system-tests/__snapshots__/retries_spec.ts.js @@ -164,8 +164,8 @@ exports['retries / supports retries (chrome)'] = ` (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/fail-twice.cy.js/fail twice (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/fail-twice.cy.js/fail twice (failed) (attempt 2 (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/fail-twice.cy.js/fail twice (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/fail-twice.cy.js/fail twice (failed) (attempt 2 (1280x633) ).png diff --git a/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js b/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js index ed45491574a4..62d56202ef2a 100644 --- a/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js +++ b/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js @@ -82,7 +82,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -165,12 +165,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -216,7 +216,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -254,7 +254,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -485,7 +485,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -568,12 +568,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -619,7 +619,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -657,7 +657,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -888,7 +888,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -971,12 +971,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -1022,7 +1022,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -1060,7 +1060,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -1291,7 +1291,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -1374,12 +1374,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -1425,7 +1425,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -1463,7 +1463,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png diff --git a/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js b/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js index dd16daebc467..2f389a4a3c30 100644 --- a/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js +++ b/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js @@ -321,7 +321,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -404,12 +404,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -455,7 +455,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -493,7 +493,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -744,7 +744,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -827,12 +827,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -878,7 +878,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -916,7 +916,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -1158,7 +1158,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -1241,12 +1241,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -1292,7 +1292,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -1330,7 +1330,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -1584,7 +1584,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -1667,12 +1667,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -1718,7 +1718,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -1756,7 +1756,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png @@ -2027,7 +2027,7 @@ We dynamically generated a new test to display this failure. (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/AppCompilationError.cy.jsx/An uncaught error wa (1280x633) s detected outside of a test (failed).png @@ -2110,12 +2110,12 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x633) .png - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x599) - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x633) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x633) g - - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x633) ).png @@ -2161,7 +2161,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReact.cy.jsx/is missing React (failed).p (1280x633) ng @@ -2199,7 +2199,7 @@ https://on.cypress.io/uncaught-exception-from-application (Screenshots) - - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x599) + - /XXX/XXX/XXX/cypress/screenshots/MissingReactInSpec.cy.jsx/is missing React in t (1280x633) his file (failed).png From e82d776fa8ce79b2382b5b97234e8617feb2a073 Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 26 Apr 2024 12:25:17 -0400 Subject: [PATCH 03/10] fix cypress-in-cypress tests for chrome 119 and up --- .../proxy/lib/http/response-middleware.ts | 22 +++++++ .../unit/http/response-middleware.spec.ts | 60 +++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/packages/proxy/lib/http/response-middleware.ts b/packages/proxy/lib/http/response-middleware.ts index 31a8267a90bb..54dbd8aded16 100644 --- a/packages/proxy/lib/http/response-middleware.ts +++ b/packages/proxy/lib/http/response-middleware.ts @@ -345,6 +345,27 @@ const OmitProblematicHeaders: ResponseMiddleware = function () { this.next() } +const MaybeSetOriginAgentClusterHeader: ResponseMiddleware = function () { + if (process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT) { + const origin = new URL(this.req.proxiedUrl).origin + + if (process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS && process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS === origin) { + // For cypress-in-cypress tests exclusively, we need to bucket all origin-agent-cluster requests + // from HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS to include Origin-Agent-Cluster=false. This has to due with changed + // behavior starting in Chrome 119. The new behavior works like the following: + // If a page did not request an origin-keyed agent cluster, chrome will place it in one + // anyway because a previous request went through without the Origin-Agent-Cluster=false header set. + // At time of writing, documentation detailing this behavior has not been found. + + // To work around this, any request that matches the origin of HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS + // should set the Origin-Agent-Cluster=false header to avoid origin-keyed agent clusters for + this.res.setHeader('Origin-Agent-Cluster', '?0') + } + } + + this.next() +} + const SetInjectionLevel: ResponseMiddleware = function () { const span = telemetry.startSpan({ name: 'set:injection:level', parentSpan: this.resMiddlewareSpan, isVerbose }) @@ -933,6 +954,7 @@ export default { InterceptResponse, PatchExpressSetHeader, OmitProblematicHeaders, // Since we might modify CSP headers, this middleware needs to come BEFORE SetInjectionLevel + MaybeSetOriginAgentClusterHeader, // NOTE: only used in cypress-in-cypress testing. this is otherwise a no-op SetInjectionLevel, MaybePreventCaching, MaybeStripDocumentDomainFeaturePolicy, diff --git a/packages/proxy/test/unit/http/response-middleware.spec.ts b/packages/proxy/test/unit/http/response-middleware.spec.ts index a8279fa4d7e7..e54a666330f3 100644 --- a/packages/proxy/test/unit/http/response-middleware.spec.ts +++ b/packages/proxy/test/unit/http/response-middleware.spec.ts @@ -19,6 +19,7 @@ describe('http/response-middleware', function () { 'InterceptResponse', 'PatchExpressSetHeader', 'OmitProblematicHeaders', + 'MaybeSetOriginAgentClusterHeader', 'SetInjectionLevel', 'MaybePreventCaching', 'MaybeStripDocumentDomainFeaturePolicy', @@ -448,6 +449,65 @@ describe('http/response-middleware', function () { } }) + describe('MaybeSetOriginAgentClusterHeader', function () { + const { MaybeSetOriginAgentClusterHeader } = ResponseMiddleware + + let CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT + let PREVIOUS_HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS + let ctx + + beforeEach(function () { + CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT = process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT + PREVIOUS_HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS = process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS + ctx = { + req: { + proxiedUrl: 'http://localhost:4455', + }, + res: { + setHeader: sinon.stub(), + on: (event, listener) => {}, + off: (event, listener) => {}, + }, + } + }) + + this.afterEach(function () { + beforeEach(function () { + process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT = CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT + process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS = PREVIOUS_HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS + }) + }) + + it('doesn\'t set the Origin-Agent-Cluster for the request if cypress-in-cypress testing is off', function () { + delete process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT + + return testMiddleware([MaybeSetOriginAgentClusterHeader], ctx) + .then(() => { + expect(ctx.res.setHeader).not.to.be.called + }) + }) + + it('doesn\'t set the Origin-Agent-Cluster for the request if cypress-in-cypress testing is on but url does NOT match http proxy', function () { + process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT = '1' + process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS = 'http://localhost:4456' + + return testMiddleware([MaybeSetOriginAgentClusterHeader], ctx) + .then(() => { + expect(ctx.res.setHeader).not.to.be.called + }) + }) + + it('sets the Origin-Agent-Cluster for the request if cypress-in-cypress testing is on and url matches http proxy', function () { + process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT = '1' + process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS = 'http://localhost:4455' + + return testMiddleware([MaybeSetOriginAgentClusterHeader], ctx) + .then(() => { + expect(ctx.res.setHeader).to.be.calledWith('Origin-Agent-Cluster', '?0') + }) + }) + }) + describe('SetInjectionLevel', function () { const { SetInjectionLevel } = ResponseMiddleware let ctx From fbc0b9b8ec95406c17d588ae3a016c735c1b79f5 Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 26 Apr 2024 12:29:49 -0400 Subject: [PATCH 04/10] remove windows app integration code added in 29198 --- .circleci/workflows.yml | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index d3fdaba05d8d..f771771e4caa 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -653,11 +653,6 @@ commands: browser: <> - run: command: | - if [[ $PLATFORM == 'windows' && '<>' == 'chrome' && '<>' == 'app' && '<>' == 'e2e' ]]; then - IS_WINDOWS_APP_INTEGRATION_TEST=true - else - IS_WINDOWS_APP_INTEGRATION_TEST=false - fi echo Current working directory is $PWD echo Total containers $CIRCLE_NODE_TOTAL @@ -665,22 +660,14 @@ commands: # internal PR cmd=$([[ <> == 'true' ]] && echo 'yarn percy exec --parallel -- --') || true - if [[ "$IS_WINDOWS_APP_INTEGRATION_TEST" = true ]]; then - echo "on windows running app-integration tests. Skipping flaky tests" - # if windows app integration tests, skip some very flaky tests that fail to load for undetermined reasons - TESTFILES=$(cd packages/<> && /usr/bin/find cypress/e2e -regextype posix-extended -name '*.cy.*' -not -regex '.*(experimentalRetries|reporter.command_errors|ct-framework-errors|reporter-ct-vite|reporter-ct-webpack|reporter.errors|reporter.hooks|cypress-in-cypress|runner.ui|specs|studio).*' | circleci tests split --total=$CIRCLE_NODE_TOTAL) - # Do NOT record on windows packages/app due to encryption issues - $cmd yarn workspace @packages/<> cypress:run:<> --browser <> --spec $TESTFILES - else - DEBUG=<> \ - CYPRESS_CONFIG_ENV=production \ - CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \ - PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ - PERCY_ENABLE=${PERCY_TOKEN:-0} \ - PERCY_PARALLEL_TOTAL=-1 \ - CYPRESS_INTERNAL_ENABLE_TELEMETRY="true" \ - $cmd yarn workspace @packages/<> cypress:run:<> --browser <> --record --parallel --group <>-<> - fi + DEBUG=<> \ + CYPRESS_CONFIG_ENV=production \ + CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \ + PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ + PERCY_ENABLE=${PERCY_TOKEN:-0} \ + PERCY_PARALLEL_TOTAL=-1 \ + CYPRESS_INTERNAL_ENABLE_TELEMETRY="true" \ + $cmd yarn workspace @packages/<> cypress:run:<> --browser <> --record --parallel --group <>-<> else # external PR @@ -701,12 +688,6 @@ commands: # To run the `yarn` command, we need to walk out of the package folder. cd ../.. - if [[ "$IS_WINDOWS_APP_INTEGRATION_TEST" = true ]]; then - echo "on windows running app-integration tests. Skipping flaky tests" - # if windows app integration tests, skip some very flaky tests that fail to load for undetermined reasons - TESTFILES=$(cd packages/<> && /usr/bin/find cypress/e2e -regextype posix-extended -name '*.cy.*' -not -regex '.*(experimentalRetries|reporter.command_errors|ct-framework-errors|reporter-ct-vite|reporter-ct-webpack|reporter.errors|reporter.hooks|cypress-in-cypress|runner.ui|specs|studio).*' | circleci tests split --total=$CIRCLE_NODE_TOTAL) - fi - DEBUG=<> \ CYPRESS_CONFIG_ENV=production \ PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ From 308c2add4bfe59ffcdf55418f29bf2caab8f22ff Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 26 Apr 2024 12:31:18 -0400 Subject: [PATCH 05/10] run windows build [run ci] --- .circleci/workflows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index f771771e4caa..4b2afe922f6b 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -74,7 +74,7 @@ windowsWorkflowFilters: &windows-workflow-filters - equal: [ develop, << pipeline.git.branch >> ] # use the following branch as well to ensure that v8 snapshot cache updates are fully tested - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] - - equal: [ 'mschile/service_worker_uncontrolled', << pipeline.git.branch >> ] + - equal: [ 'chore/update_internal_browser_images', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> From ec818c81743de365ad374f1210ef786f2f8398de Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 26 Apr 2024 14:09:56 -0400 Subject: [PATCH 06/10] fix some failing system tests [run ci] --- system-tests/__snapshots__/browser_crash_handling_spec.js | 2 +- .../projects/screen-size/cypress/e2e/default_size.cy.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system-tests/__snapshots__/browser_crash_handling_spec.js b/system-tests/__snapshots__/browser_crash_handling_spec.js index 4d4c49f7c24c..09c99d3bd1c3 100644 --- a/system-tests/__snapshots__/browser_crash_handling_spec.js +++ b/system-tests/__snapshots__/browser_crash_handling_spec.js @@ -496,7 +496,7 @@ exports['Browser Crash Handling / when the tab closes in chrome / fails'] = ` Running: chrome_tab_close.cy.js (1 of 2) -We detected that the Chrome browser process closed unexpectedly. +We detected that the Chrome tab running Cypress tests closed unexpectedly. We have failed the current spec and aborted the run. diff --git a/system-tests/projects/screen-size/cypress/e2e/default_size.cy.js b/system-tests/projects/screen-size/cypress/e2e/default_size.cy.js index f009576edf2e..08da2c470f46 100644 --- a/system-tests/projects/screen-size/cypress/e2e/default_size.cy.js +++ b/system-tests/projects/screen-size/cypress/e2e/default_size.cy.js @@ -16,7 +16,7 @@ describe('windowSize', () => { // availHeight: top.screen.availHeight, }).deep.eq({ innerWidth: 1280, - innerHeight: 599, // chrome 118 reduced the size here from 603 to 599 + innerHeight: 635, // chrome 119 increased the size here from 599 to 635 // screenWidth: 1280, // screenHeight: 603, // availWidth: 1280, From fdc7cbc4262678bf4387b75a2f1d4bca6d0aa104 Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 26 Apr 2024 14:22:41 -0400 Subject: [PATCH 07/10] update non proxied png [run ci] --- .../cypress/fixtures/cy-non-proxied.png | Bin 19460 -> 19512 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/system-tests/projects/non-proxied/cypress/fixtures/cy-non-proxied.png b/system-tests/projects/non-proxied/cypress/fixtures/cy-non-proxied.png index 44dc5becb6f71a05481fce58863b2ceab94f117c..0e5064332699c0cd8886e00fe7977dc1cbc56549 100644 GIT binary patch literal 19512 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 Date: Fri, 26 Apr 2024 17:45:22 -0400 Subject: [PATCH 08/10] fix system tests failing [run ci] --- .../cypress/fixtures/cy-non-proxied.png | Bin 19512 -> 19463 bytes .../cypress/e2e/default_size.cy.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/system-tests/projects/non-proxied/cypress/fixtures/cy-non-proxied.png b/system-tests/projects/non-proxied/cypress/fixtures/cy-non-proxied.png index 0e5064332699c0cd8886e00fe7977dc1cbc56549..5871ab99f1bd29dda4ffecc632a43807fc024038 100644 GIT binary patch literal 19463 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 Zqp2v9vKV%u4pB=wt*oh(p { // availHeight: top.screen.availHeight, }).deep.eq({ innerWidth: 1280, - innerHeight: 635, // chrome 119 increased the size here from 599 to 635 + innerHeight: 633, // chrome 119 increased the size here from 599 to 633 // screenWidth: 1280, // screenHeight: 603, // availWidth: 1280, From e2a1636daf51a20ce49bf16964be4a95b1adc5f0 Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 26 Apr 2024 17:53:06 -0400 Subject: [PATCH 09/10] fix afterEach [run ci] --- packages/proxy/test/unit/http/response-middleware.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/proxy/test/unit/http/response-middleware.spec.ts b/packages/proxy/test/unit/http/response-middleware.spec.ts index e54a666330f3..859b1c361860 100644 --- a/packages/proxy/test/unit/http/response-middleware.spec.ts +++ b/packages/proxy/test/unit/http/response-middleware.spec.ts @@ -471,7 +471,7 @@ describe('http/response-middleware', function () { } }) - this.afterEach(function () { + afterEach(function () { beforeEach(function () { process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT = CYPRESS_INTERNAL_E2E_TESTING_SELF_PARENT_PROJECT process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS = PREVIOUS_HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS From 96ee05cfe569c97fe8591230a1558a69a01f89cb Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Tue, 30 Apr 2024 11:31:45 -0400 Subject: [PATCH 10/10] chore: update documentation in response middleware --- packages/proxy/lib/http/response-middleware.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/proxy/lib/http/response-middleware.ts b/packages/proxy/lib/http/response-middleware.ts index 54dbd8aded16..e88a5273a6e4 100644 --- a/packages/proxy/lib/http/response-middleware.ts +++ b/packages/proxy/lib/http/response-middleware.ts @@ -351,14 +351,15 @@ const MaybeSetOriginAgentClusterHeader: ResponseMiddleware = function () { if (process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS && process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS === origin) { // For cypress-in-cypress tests exclusively, we need to bucket all origin-agent-cluster requests - // from HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS to include Origin-Agent-Cluster=false. This has to due with changed + // from HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS to include Origin-Agent-Cluster=false. This has to do with changed // behavior starting in Chrome 119. The new behavior works like the following: - // If a page did not request an origin-keyed agent cluster, chrome will place it in one - // anyway because a previous request went through without the Origin-Agent-Cluster=false header set. - // At time of writing, documentation detailing this behavior has not been found. - + // - If the first page from an origin does not set the header, + // then no other pages from that origin will be origin-keyed, even if those other pages do set the header. + // - If the first page from an origin sets the header and is made origin-keyed, + // then all other pages from that origin will be origin-keyed whether they ask for it or not. // To work around this, any request that matches the origin of HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS - // should set the Origin-Agent-Cluster=false header to avoid origin-keyed agent clusters for + // should set the Origin-Agent-Cluster=false header to avoid origin-keyed agent clusters. + // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin-Agent-Cluster for more details. this.res.setHeader('Origin-Agent-Cluster', '?0') } }