diff --git a/.circleci/cache-version.txt b/.circleci/cache-version.txt
index 1dd4a2276a0..f82a827eb24 100644
--- a/.circleci/cache-version.txt
+++ b/.circleci/cache-version.txt
@@ -1,3 +1,3 @@
# Bump this version to force CI to re-create the cache from scratch.
-11-5-24
+12-11-24
diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml
index 68996b55bf1..58463853349 100644
--- a/.circleci/workflows.yml
+++ b/.circleci/workflows.yml
@@ -30,7 +30,7 @@ mainBuildFilters: &mainBuildFilters
- /^release\/\d+\.\d+\.\d+$/
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- 'update-v8-snapshot-cache-on-develop'
- - 'chore/update_reporter_mobx'
+ - 'mschile/chrome_for_testing'
- 'publish-binary'
# usually we don't build Mac app - it takes a long time
@@ -42,7 +42,7 @@ macWorkflowFilters: &darwin-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: [ 'chore/update_reporter_mobx', << pipeline.git.branch >> ]
+ - equal: [ 'mschile/chrome_for_testing', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
@@ -53,7 +53,7 @@ linuxArm64WorkflowFilters: &linux-arm64-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: [ 'chore/update_reporter_mobx', << pipeline.git.branch >> ]
+ - equal: [ 'mschile/chrome_for_testing', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
@@ -76,7 +76,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: [ 'chore/update_reporter_mobx', << pipeline.git.branch >> ]
+ - equal: [ 'mschile/chrome_for_testing', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
@@ -152,7 +152,7 @@ commands:
name: Set environment variable to determine whether or not to persist artifacts
command: |
echo "Setting SHOULD_PERSIST_ARTIFACTS variable"
- echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "chore/update_reporter_mobx" ]]; then
+ echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "mschile/chrome_for_testing" ]]; then
export SHOULD_PERSIST_ARTIFACTS=true
fi' >> "$BASH_ENV"
# You must run `setup_should_persist_artifacts` command and be using bash before running this command
@@ -1772,7 +1772,7 @@ jobs:
PLATFORM: linux
machine:
# using `machine` gives us a Linux VM that can run Docker
- image: ubuntu-2004:202111-02
+ image: ubuntu-2004:2023.07.1
docker_layer_caching: true
resource_class: medium
steps:
diff --git a/.gitignore b/.gitignore
index 326b00acfcf..2047278fbf2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -280,7 +280,9 @@ typings/
# Output of 'npm pack'
*.tgz
-# Yarn Integrity file
+# Yarn files that shouldn't be checked in
+.yarnrc
+.yarn/
.yarn-integrity
# dotenv environment variables file
diff --git a/browser-versions.json b/browser-versions.json
index b01fbd439e4..5875a901c07 100644
--- a/browser-versions.json
+++ b/browser-versions.json
@@ -1,5 +1,5 @@
{
- "chrome:beta": "132.0.6834.15",
- "chrome:stable": "131.0.6778.85",
+ "chrome:beta": "132.0.6834.46",
+ "chrome:stable": "131.0.6778.139",
"chrome:minimum": "64.0.3282.0"
}
diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md
index b12efca2179..ee9a11991dc 100644
--- a/cli/CHANGELOG.md
+++ b/cli/CHANGELOG.md
@@ -1,4 +1,26 @@
+## 13.17.0
+
+_Released 12/17/2024_
+
+**Features:**
+
+- Added official support for the [Google Chrome for Testing](https://github.com/GoogleChromeLabs/chrome-for-testing) browser. Assuming the browser is in a location where it can be [auto-detected](https://on.cypress.io/troubleshooting-launching-browsers), it can be launched by providing the `--browser chrome-for-testing` option. If it can't be auto-detected, the path to the browser can also be provided. Previously [customizing the available browsers](https://on.cypress.io/customize-browsers) was required. Addresses [#28123](https://github.com/cypress-io/cypress/issues/28123) and [#28554](https://github.com/cypress-io/cypress/issues/28554).
+
+**Bugfixes:**
+
+- Fixed an issue where targets may hang if `Network.enable` is not implemented for the target. Addresses [#29876](https://github.com/cypress-io/cypress/issues/29876).
+- Updated Firefox `userChrome.css` to correctly hide the toolbox during headless mode. Addresses [#30721](https://github.com/cypress-io/cypress/issues/30721).
+- Fixed an issue loading the `cypress.config.ts` file with Node.js version `22.12.0` if it is loaded as an ESM. Addresses [#30715](https://github.com/cypress-io/cypress/issues/30715).
+
+**Misc:**
+
+- Removed a comment from the scaffolded `supportFile` for component tests around CommonJS syntax. Addresses [#23287](https://github.com/cypress-io/cypress/issues/23287).
+
+**Dependency Updates:**
+
+- Updated `chai` from `4.2.0` to `4.5.0`. Addressed in [#30737](https://github.com/cypress-io/cypress/pull/30737).
+
## 13.16.1
_Released 12/03/2024_
diff --git a/npm/vite-plugin-cypress-esm/CHANGELOG.md b/npm/vite-plugin-cypress-esm/CHANGELOG.md
index a1fa76ee5d5..57c5cb56625 100644
--- a/npm/vite-plugin-cypress-esm/CHANGELOG.md
+++ b/npm/vite-plugin-cypress-esm/CHANGELOG.md
@@ -1,3 +1,10 @@
+# [@cypress/vite-plugin-cypress-esm-v1.1.2](https://github.com/cypress-io/cypress/compare/@cypress/vite-plugin-cypress-esm-v1.1.1...@cypress/vite-plugin-cypress-esm-v1.1.2) (2024-12-03)
+
+
+### Bug Fixes
+
+* support multiple imports of one module with multiple lines ([#30314](https://github.com/cypress-io/cypress/issues/30314)) ([12df40e](https://github.com/cypress-io/cypress/commit/12df40ed8c1101c5c4053a1fe63c06fcd2809bc7))
+
# [@cypress/vite-plugin-cypress-esm-v1.1.1](https://github.com/cypress-io/cypress/compare/@cypress/vite-plugin-cypress-esm-v1.1.0...@cypress/vite-plugin-cypress-esm-v1.1.1) (2024-05-10)
diff --git a/package.json b/package.json
index 5510bf98287..212c6966016 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "cypress",
- "version": "13.16.1",
+ "version": "13.17.0",
"description": "Cypress is a next generation front end testing tool built for the modern web",
"private": true,
"scripts": {
@@ -127,7 +127,7 @@
"bluebird": "3.5.3",
"bluebird-retry": "0.11.0",
"bytenode": "1.3.7",
- "chai": "4.2.0",
+ "chai": "4.5.0",
"chai-as-promised": "7.1.1",
"chalk": "2.4.2",
"check-dependencies": "1.1.0",
@@ -212,7 +212,7 @@
},
"engines": {
"node": ">=18.17.0",
- "yarn": ">=1.22.17"
+ "yarn": ">=1.22.22"
},
"productName": "Cypress",
"license": "MIT",
diff --git a/packages/app/cypress/e2e/top-nav.cy.ts b/packages/app/cypress/e2e/top-nav.cy.ts
index 417642390f0..52ec9e8d7b0 100644
--- a/packages/app/cypress/e2e/top-nav.cy.ts
+++ b/packages/app/cypress/e2e/top-nav.cy.ts
@@ -44,7 +44,7 @@ describe('App Top Nav Workflows', () => {
.should('have.attr', 'src')
.and('contain', 'firefox')
- cy.findByTestId('top-nav-active-browser').should('contain', 'Firefox 5')
+ cy.findByTestId('top-nav-active-browser').should('contain', 'Firefox 6')
})
})
@@ -82,19 +82,19 @@ describe('App Top Nav Workflows', () => {
cy.get('@browserItems').eq(1)
.should('contain', 'Edge')
- .and('contain', 'Version 8')
+ .and('contain', 'Version 9')
.findByTestId('top-nav-browser-list-selected-item')
.should('not.exist')
cy.get('@browserItems').eq(2)
.should('contain', 'Electron')
- .and('contain', 'Version 12')
+ .and('contain', 'Version 13')
.findByTestId('top-nav-browser-list-selected-item')
.should('not.exist')
cy.get('@browserItems').eq(3)
.should('contain', 'Firefox')
- .and('contain', 'Version 5')
+ .and('contain', 'Version 6')
.findByTestId('top-nav-browser-list-selected-item')
.should('not.exist')
})
diff --git a/packages/app/src/debug/LayeredBrowserIcons.cy.tsx b/packages/app/src/debug/LayeredBrowserIcons.cy.tsx
index 2de78fafab0..410812b4653 100644
--- a/packages/app/src/debug/LayeredBrowserIcons.cy.tsx
+++ b/packages/app/src/debug/LayeredBrowserIcons.cy.tsx
@@ -2,7 +2,7 @@ import LayeredBrowserIcons from './LayeredBrowserIcons.vue'
import type { BrowserType } from './LayeredBrowserIcons.vue'
describe('