Skip to content

Commit 20662fc

Browse files
Merge branch 'develop' into feat/cy-prompt
2 parents ebd0420 + 8c3a445 commit 20662fc

File tree

17 files changed

+81
-209
lines changed

17 files changed

+81
-209
lines changed

.circleci/workflows.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: 2.1
22

3-
chrome-stable-version: &chrome-stable-version "138.0.7204.157"
4-
chrome-beta-version: &chrome-beta-version "139.0.7258.42"
3+
chrome-stable-version: &chrome-stable-version "138.0.7204.168"
4+
chrome-beta-version: &chrome-beta-version "139.0.7258.52"
55
firefox-stable-version: &firefox-stable-version "137.0"
66

77
orbs:

cli/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
22
## 14.5.3
33

4-
_Released 7/30/2025 (PENDING)_
4+
_Released 7/25/2025_
55

66
**Bugfixes:**
77

88
- Fixed missing support for setting an absolute path for `component.indexHtmlFile` in `@cypress/webpack-dev-server`. Fixes [#31819](https://github.com/cypress-io/cypress/issues/31819).
99
- Fixed an issue where TypeScript ESM projects using `.js` and `.mjs` extensions where not resolving correctly within `@cypress/webpack-batteries-included-preprocessor`. Addressed in [#31994](https://github.com/cypress-io/cypress/pull/31994). Fixes [#26827](https://github.com/cypress-io/cypress/issues/26827) and [#28805](https://github.com/cypress-io/cypress/issues/28805).
1010
- Fixed an issue in `@cypress/angular` where component instance fields were not reference safe and were being overwritten. Fixes [#31238](https://github.com/cypress-io/cypress/issues/31238) and [#31983](https://github.com/cypress-io/cypress/issues/31983). Fixed in [#31993](https://github.com/cypress-io/cypress/pull/31993).
1111

12+
**Dependency Updates:**
13+
14+
- Upgraded `@cypress/request` to 3.0.9, to resolve [CVE-2025-7783](https://github.com/advisories/GHSA-fjxv-7rqg-78g4) in `form-data`. Addresses [#32091](https://github.com/cypress-io/cypress/issues/32091).
15+
1216
## 14.5.2
1317

1418
_Released 7/15/2025_

cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"unit": "cross-env BLUEBIRD_DEBUG=1 NODE_ENV=test mocha --reporter mocha-multi-reporters --reporter-options configFile=../mocha-reporter-config.json"
2121
},
2222
"dependencies": {
23-
"@cypress/request": "^3.0.8",
23+
"@cypress/request": "^3.0.9",
2424
"@cypress/xvfb": "^1.2.4",
2525
"@types/sinonjs__fake-timers": "8.1.1",
2626
"@types/sizzle": "^2.3.2",

npm/angular/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# [@cypress/angular-v3.0.1](https://github.com/cypress-io/cypress/compare/@cypress/angular-v3.0.0...@cypress/angular-v3.0.1) (2025-07-24)
2+
3+
4+
### Bug Fixes
5+
6+
* ensure cy.mount is reference safe ([#31238](https://github.com/cypress-io/cypress/issues/31238),[#31983](https://github.com/cypress-io/cypress/issues/31983)) ([#31993](https://github.com/cypress-io/cypress/issues/31993)) ([886878b](https://github.com/cypress-io/cypress/commit/886878b8b5353469abc2eaaf742c04b42d21cf54))
7+
18
# [@cypress/angular-v3.0.0](https://github.com/cypress-io/cypress/compare/@cypress/angular-v2.1.0...@cypress/angular-v3.0.0) (2025-01-08)
29

310

npm/webpack-batteries-included-preprocessor/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# [@cypress/webpack-batteries-included-preprocessor-v3.1.2](https://github.com/cypress-io/cypress/compare/@cypress/webpack-batteries-included-preprocessor-v3.1.1...@cypress/webpack-batteries-included-preprocessor-v3.1.2) (2025-07-24)
2+
3+
4+
### Bug Fixes
5+
6+
* Add extensionAlias for ESM TS to webpack-batteries-included ([#31994](https://github.com/cypress-io/cypress/issues/31994)) ([cabdae7](https://github.com/cypress-io/cypress/commit/cabdae708d43464f4f7e86e6f400823dcc95abe6)), closes [#26827](https://github.com/cypress-io/cypress/issues/26827) [#28805](https://github.com/cypress-io/cypress/issues/28805)
7+
18
# [@cypress/webpack-batteries-included-preprocessor-v3.1.1](https://github.com/cypress-io/cypress/compare/@cypress/webpack-batteries-included-preprocessor-v3.1.0...@cypress/webpack-batteries-included-preprocessor-v3.1.1) (2025-07-01)
29

310
# [@cypress/webpack-batteries-included-preprocessor-v3.1.0](https://github.com/cypress-io/cypress/compare/@cypress/webpack-batteries-included-preprocessor-v3.0.7...@cypress/webpack-batteries-included-preprocessor-v3.1.0) (2025-05-13)

npm/webpack-dev-server/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# [@cypress/webpack-dev-server-v4.1.1](https://github.com/cypress-io/cypress/compare/@cypress/webpack-dev-server-v4.1.0...@cypress/webpack-dev-server-v4.1.1) (2025-07-24)
2+
3+
4+
### Bug Fixes
5+
6+
* check path for indexHtmlFile in onSpecsChange ([#31819](https://github.com/cypress-io/cypress/issues/31819)) ([#31821](https://github.com/cypress-io/cypress/issues/31821)) ([8ff4c7d](https://github.com/cypress-io/cypress/commit/8ff4c7d364571c25b116b6ca8016569bc24e228a))
7+
18
# [@cypress/webpack-dev-server-v4.1.0](https://github.com/cypress-io/cypress/compare/@cypress/webpack-dev-server-v4.0.2...@cypress/webpack-dev-server-v4.1.0) (2025-05-13)
29

310

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cypress",
3-
"version": "14.5.2",
3+
"version": "14.5.3",
44
"description": "Cypress is a next generation front end testing tool built for the modern web",
55
"private": true,
66
"scripts": {
@@ -75,7 +75,7 @@
7575
"@aws-sdk/client-s3": "3.485.0",
7676
"@aws-sdk/credential-providers": "3.53.0",
7777
"@babel/eslint-parser": "7.25.1",
78-
"@cypress/request": "^3.0.8",
78+
"@cypress/request": "^3.0.9",
7979
"@cypress/request-promise": "^5.0.0",
8080
"@electron/fuses": "1.8.0",
8181
"@electron/notarize": "^2.5.0",

packages/app/cypress/e2e/studio/studio-cloud.cy.ts

Lines changed: 2 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -111,175 +111,8 @@ describe('Studio Cloud', () => {
111111
assertClosingPanelWithoutChanges()
112112
})
113113

114-
it('opens studio panel to new test when clicking on studio button (from the app) next to url', () => {
115-
cy.viewport(1500, 1000)
116-
loadProjectAndRunSpec({ enableCloudStudio: true })
117-
// studio button should be visible when using cloud studio
118-
cy.get('[data-cy="studio-button"]').should('be.visible').click()
119-
cy.get('[data-cy="studio-panel"]').should('be.visible')
120-
121-
cy.contains('New Test')
122-
123-
cy.get('[data-cy="studio-url-prompt"]').should('not.exist')
124-
125-
cy.percySnapshot()
126-
})
127-
128-
// TODO: un-skip this test when we enable Studio AI
129-
it.skip('opens a cloud studio session with AI enabled', () => {
130-
cy.mockNodeCloudRequest({
131-
url: '/studio/testgen/n69px6/enabled',
132-
method: 'get',
133-
body: { enabled: true },
134-
})
135-
136-
// this endpoint gets called twice, so we need to mock it twice
137-
cy.mockNodeCloudRequest({
138-
url: '/studio/testgen/n69px6/enabled',
139-
method: 'get',
140-
body: { enabled: true },
141-
})
142-
143-
const aiOutput = 'cy.get(\'button\').should(\'have.text\', \'Increment\')'
144-
145-
cy.mockNodeCloudStreamingRequest({
146-
url: '/studio/testgen/n69px6/generate',
147-
method: 'post',
148-
body: { recommendations: [{ content: aiOutput }] },
149-
})
150-
151-
cy.mockStudioFullSnapshot({
152-
fullSnapshot: {
153-
id: 1,
154-
nodeType: 1,
155-
nodeName: 'div',
156-
localName: 'div',
157-
nodeValue: 'div',
158-
children: [],
159-
shadowRoots: [],
160-
},
161-
url: 'http://localhost:3000/cypress/e2e/index.html',
162-
})
163-
164-
const deferred = pDefer()
165-
166-
loadProjectAndRunSpec({ enableCloudStudio: true })
167-
168-
cy.findByTestId('studio-panel').should('not.exist')
169-
170-
cy.intercept('/cypress/e2e/index.html', () => {
171-
// wait for the promise to resolve before responding
172-
// this will ensure the studio panel is loaded before the test finishes
173-
return deferred.promise
174-
}).as('indexHtml')
175-
176-
cy.contains('visits a basic html page')
177-
.closest('.runnable-wrapper')
178-
.findByTestId('launch-studio')
179-
.click()
180-
181-
// regular studio is not loaded until after the test finishes
182-
cy.get('[data-cy="hook-name-studio commands"]').should('not.exist')
183-
// cloud studio is loaded immediately
184-
cy.findByTestId('studio-panel').then(() => {
185-
// check for the loading panel from the app first
186-
cy.get('[data-cy="loading-studio-panel"]').should('be.visible')
187-
// we've verified the studio panel is loaded, now resolve the promise so the test can finish
188-
deferred.resolve()
189-
})
190-
191-
cy.wait('@indexHtml')
192-
193-
// Studio re-executes spec before waiting for commands - wait for the spec to finish executing.
194-
cy.waitForSpecToFinish()
195-
196-
// Verify the studio panel is still open
197-
cy.findByTestId('studio-panel')
198-
cy.get('[data-cy="hook-name-studio commands"]')
199-
200-
// make sure studio is not loading
201-
cy.get('[data-cy="loading-studio-panel"]').should('not.exist')
202-
203-
// Verify that AI is enabled
204-
cy.get('[data-cy="ai-status-text"]').should('contain.text', 'Enabled')
205-
206-
// Verify that the AI output is correct
207-
cy.get('[data-cy="recommendation-editor"]').should('contain', aiOutput)
208-
})
209-
210-
it('opens a cloud studio session with AI marked as coming soon', () => {
211-
cy.mockNodeCloudRequest({
212-
url: '/studio/testgen/n69px6/enabled',
213-
method: 'get',
214-
body: { enabled: true },
215-
})
216-
217-
// this endpoint gets called twice, so we need to mock it twice
218-
cy.mockNodeCloudRequest({
219-
url: '/studio/testgen/n69px6/enabled',
220-
method: 'get',
221-
body: { enabled: true },
222-
})
223-
224-
const aiOutput = 'cy.get(\'button\').should(\'have.text\', \'Increment\')'
225-
226-
cy.mockNodeCloudStreamingRequest({
227-
url: '/studio/testgen/n69px6/generate',
228-
method: 'post',
229-
body: { recommendations: [{ content: aiOutput }] },
230-
})
231-
232-
cy.mockStudioFullSnapshot({
233-
fullSnapshot: {
234-
id: 1,
235-
nodeType: 1,
236-
nodeName: 'div',
237-
localName: 'div',
238-
nodeValue: 'div',
239-
children: [],
240-
shadowRoots: [],
241-
},
242-
url: 'http://localhost:3000/cypress/e2e/index.html',
243-
})
244-
245-
const deferred = pDefer()
246-
247-
loadProjectAndRunSpec({ enableCloudStudio: true })
248-
249-
cy.findByTestId('studio-panel').should('not.exist')
250-
251-
cy.intercept('/cypress/e2e/index.html', () => {
252-
// wait for the promise to resolve before responding
253-
// this will ensure the studio panel is loaded before the test finishes
254-
return deferred.promise
255-
}).as('indexHtml')
256-
257-
cy.contains('visits a basic html page')
258-
.closest('.runnable-wrapper')
259-
.findByTestId('launch-studio')
260-
.click()
261-
262-
// regular studio is not loaded until after the test finishes
263-
cy.get('[data-cy="hook-name-studio commands"]').should('not.exist')
264-
// cloud studio is loaded immediately
265-
cy.findByTestId('studio-panel').then(() => {
266-
// check for the loading panel from the app first
267-
cy.get('[data-cy="loading-studio-panel"]').should('be.visible')
268-
// we've verified the studio panel is loaded, now resolve the promise so the test can finish
269-
deferred.resolve()
270-
})
271-
272-
cy.wait('@indexHtml')
273-
274-
// Studio re-executes spec before waiting for commands - wait for the spec to finish executing.
275-
cy.waitForSpecToFinish()
276-
277-
// Verify the studio panel is still open
278-
cy.findByTestId('studio-panel')
279-
cy.get('[data-cy="hook-name-studio commands"]')
280-
281-
// make sure studio is not loading
282-
cy.get('[data-cy="loading-studio-panel"]').should('not.exist')
114+
it('studio AI is marked as coming soon', () => {
115+
launchStudio({ enableCloudStudio: true })
283116

284117
// Verify that AI is coming soon
285118
cy.get('[data-cy="ai-status-text"]').should('contain.text', 'Coming soon')

packages/https-proxy/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
},
2525
"devDependencies": {
2626
"@cypress/debugging-proxy": "2.0.1",
27-
"@cypress/request": "^3.0.8",
27+
"@cypress/request": "^3.0.9",
2828
"@cypress/request-promise": "^5.0.0",
2929
"@packages/network": "0.0.0-development",
3030
"@packages/ts": "0.0.0-development",

packages/network/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"devDependencies": {
3030
"@cypress/debugging-proxy": "2.0.1",
31-
"@cypress/request": "^3.0.8",
31+
"@cypress/request": "^3.0.9",
3232
"@cypress/request-promise": "^5.0.0",
3333
"@packages/https-proxy": "0.0.0-development",
3434
"@packages/socket": "0.0.0-development",

0 commit comments

Comments
 (0)