From d592ce918ae04307f545206cb3be57a76ea8062b Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Tue, 5 Mar 2024 11:12:52 -0500 Subject: [PATCH 1/2] chore: capture the beforeTest timestamp in the app before sending it to protocol for a more accurate timestamp [run ci] --- .../app/src/runner/events/capture-protocol.ts | 9 +++- system-tests/__snapshots__/protocol_spec.js | 51 ++++++++++++------- 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/packages/app/src/runner/events/capture-protocol.ts b/packages/app/src/runner/events/capture-protocol.ts index 41053217ba39..3559cf291c38 100644 --- a/packages/app/src/runner/events/capture-protocol.ts +++ b/packages/app/src/runner/events/capture-protocol.ts @@ -79,12 +79,17 @@ export const addCaptureProtocolListeners = (Cypress: Cypress.Cypress) => { Cypress.primaryOriginCommunicator.on('viewport:changed', viewportChangedHandler) Cypress.on('test:before:run:async', async (attributes) => { + const timestamp = performance.now() + performance.timeOrigin + attachCypressProtocolInfo({ type: 'test:before:run:async', - timestamp: performance.now() + performance.timeOrigin, + timestamp, }) - await Cypress.backend('protocol:test:before:run:async', attributes) + await Cypress.backend('protocol:test:before:run:async', { + ...attributes, + timestamp, + }) }) Cypress.on('url:changed', (url) => { diff --git a/system-tests/__snapshots__/protocol_spec.js b/system-tests/__snapshots__/protocol_spec.js index de9ad2ad01ff..5fa970ef5a92 100644 --- a/system-tests/__snapshots__/protocol_spec.js +++ b/system-tests/__snapshots__/protocol_spec.js @@ -68,7 +68,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -135,7 +136,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -202,7 +204,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -269,7 +272,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -336,7 +340,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -403,7 +408,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -470,7 +476,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -537,7 +544,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -604,7 +612,8 @@ exports['e2e events'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 10000 + "_slow": 10000, + "timestamp": "Any.Number" } ], "preAfterTest": [ @@ -5156,7 +5165,8 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -5185,7 +5195,8 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -5214,7 +5225,8 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -5243,7 +5255,8 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" } ], "preAfterTest": [ @@ -6883,7 +6896,8 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -6912,7 +6926,8 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -6941,7 +6956,8 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" }, { "_testConfig": { @@ -6970,7 +6986,8 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, "currentRetry": 0, "retries": 0, - "_slow": 250 + "_slow": 250, + "timestamp": "Any.Number" } ], "preAfterTest": [ From 8eda19185728f591739aa4516ceb42c244f73a1c Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Fri, 8 Mar 2024 16:34:19 -0500 Subject: [PATCH 2/2] add change entry --- cli/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 44c1fc3c57e8..3d9db18b1706 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -8,6 +8,10 @@ _Released 2/27/2024 (PENDING)_ - Fixed an issue where `.click()` commands on children of disabled elements would still produce "click" events -- even without `{ force: true }`. Fixes [#28788](https://github.com/cypress-io/cypress/issues/28788). - Changed RequestBody type to allow for boolean and null literals to be passed as body values. [#28789](https://github.com/cypress-io/cypress/issues/28789) +**Misc:** + +- Captures the `beforeTest` timestamp inside the browser for the purposes of accurately determining test start for Test Replay. Addressed in [#29061](https://github.com/cypress-io/cypress/pull/29061). + **Dependency Updates:** - Updated signal-exit from `3.0.3` to `3.0.7`. Addressed in [#28979](https://github.com/cypress-io/cypress/pull/28979).