diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 62eb68b4ec2e..416a8b238d77 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,8 +1,12 @@ -## 12.7.1 +## 12.8.0 _Released 03/14/2023 (PENDING)_ +**Features:** + +- It is now possible to control the number of connection attempts to the browser using the CYPRESS_CONNECT_RETRY_THRESHOLD Environment Variable. Learn more [here](https://docs.cypress.io/guides/references/advanced-installation#Environment-variables). Addressed in [#25848](https://github.com/cypress-io/cypress/pull/25848). + **Dependency Updates:** - Upgraded [`mocha-junit-reporter`](https://github.com/michaelleeallen/mocha-junit-reporter) from `2.1.0` to `2.2.0` to be able to use [new placeholders](https://github.com/michaelleeallen/mocha-junit-reporter/pull/163) such as `[suiteFilename]` or `[suiteName]` when defining the test report name. Addressed in [#25922](https://github.com/cypress-io/cypress/pull/25922). diff --git a/packages/errors/src/errors.ts b/packages/errors/src/errors.ts index 91d724bab67f..08c0166f190a 100644 --- a/packages/errors/src/errors.ts +++ b/packages/errors/src/errors.ts @@ -1063,8 +1063,8 @@ export const AllCypressErrors = { ${fmt.stackTrace(arg1)}` }, - CDP_RETRYING_CONNECTION: (attempt: string | number, browserName: string) => { - return errTemplate`Still waiting to connect to ${fmt.off(_.capitalize(browserName))}, retrying in 1 second ${fmt.meta(`(attempt ${attempt}/62)`)}` + CDP_RETRYING_CONNECTION: (attempt: string | number, browserName: string, connectRetryThreshold: number) => { + return errTemplate`Still waiting to connect to ${fmt.off(_.capitalize(browserName))}, retrying in 1 second ${fmt.meta(`(attempt ${attempt}/${connectRetryThreshold})`)}` }, UNEXPECTED_BEFORE_BROWSER_LAUNCH_PROPERTIES: (arg1: string[], arg2: string[]) => { return errTemplate`\ diff --git a/packages/errors/test/unit/visualSnapshotErrors_spec.ts b/packages/errors/test/unit/visualSnapshotErrors_spec.ts index 2f078cfba3fa..829f2ee8cb58 100644 --- a/packages/errors/test/unit/visualSnapshotErrors_spec.ts +++ b/packages/errors/test/unit/visualSnapshotErrors_spec.ts @@ -1009,7 +1009,7 @@ describe('visual error templates', () => { }, CDP_RETRYING_CONNECTION: () => { return { - default: [1, 'chrome'], + default: [1, 'chrome', 62], } }, UNEXPECTED_BEFORE_BROWSER_LAUNCH_PROPERTIES: () => { diff --git a/packages/server/lib/browsers/firefox-util.ts b/packages/server/lib/browsers/firefox-util.ts index 934a75d94bc8..c1b83a99e049 100644 --- a/packages/server/lib/browsers/firefox-util.ts +++ b/packages/server/lib/browsers/firefox-util.ts @@ -33,6 +33,8 @@ const getTabId = (tab) => { } const getDelayMsForRetry = (i) => { + let maxRetries = Number.parseInt(process.env.CYPRESS_CONNECT_RETRY_THRESHOLD ? process.env.CYPRESS_CONNECT_RETRY_THRESHOLD : '62') + if (i < 10) { return 100 } @@ -41,7 +43,7 @@ const getDelayMsForRetry = (i) => { return 500 } - if (i < 63) { + if (i <= maxRetries) { return 1000 } diff --git a/packages/server/lib/browsers/protocol.ts b/packages/server/lib/browsers/protocol.ts index 837fb03ec57f..179f306b423e 100644 --- a/packages/server/lib/browsers/protocol.ts +++ b/packages/server/lib/browsers/protocol.ts @@ -5,6 +5,8 @@ import utils from './utils' const errors = require('../errors') export function _getDelayMsForRetry (i, browserName) { + let maxRetries = Number.parseInt(process.env.CYPRESS_CONNECT_RETRY_THRESHOLD ? process.env.CYPRESS_CONNECT_RETRY_THRESHOLD : '62') + if (i < 10) { return 100 } @@ -13,8 +15,8 @@ export function _getDelayMsForRetry (i, browserName) { return 500 } - if (i < 63) { // after 5 seconds, begin logging and retrying - errors.warning('CDP_RETRYING_CONNECTION', i, browserName) + if (i <= maxRetries) { // after 5 seconds, begin logging and retrying + errors.warning('CDP_RETRYING_CONNECTION', i, browserName, maxRetries) return 1000 }