diff --git a/e2e/results/12.17.4.json b/e2e/results/12.17.4.json new file mode 100644 index 0000000..298b51f --- /dev/null +++ b/e2e/results/12.17.4.json @@ -0,0 +1,283 @@ +{ + "stats": { + "duration": 2187, + "endedAt": "2023-08-31T18:56:04.416Z", + "startedAt": "2023-08-31T18:56:02.229Z", + "failures": 1, + "passes": 0, + "pending": 0, + "skipped": 0, + "suites": 1, + "tests": 1, + "wallClockDuration": 2187, + "wallClockStartedAt": "2023-08-31T18:56:02.229Z", + "wallClockEndedAt": "2023-08-31T18:56:04.416Z" + }, + "reporterStats": { + "suites": 1, + "tests": 1, + "passes": 0, + "pending": 0, + "failures": 1, + "start": "2023-08-31T18:56:02.231Z", + "end": "2023-08-31T18:56:04.426Z", + "duration": 2195 + }, + "exception": null, + "video": true, + "screenshots": [ + { + "screenshotId": "diZ1MVuAmzX3Eb9Yj7_SX", + "name": "screenshot", + "testId": "r0", + "testAttemptIndex": 0, + "takenAt": "2023-08-31T18:56:02.606Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed).png", + "height": 1440, + "width": 2560 + }, + { + "screenshotId": "jSGaUvksexeezB2KRoznZ", + "name": "screenshot", + "testId": "r0", + "testAttemptIndex": 1, + "takenAt": "2023-08-31T18:56:02.987Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed) (attempt 2).png", + "height": 1440, + "width": 2560 + }, + { + "screenshotId": "9FHX9c1hZF2Vwmfa2f5uN", + "name": "screenshot", + "testId": "r0", + "testAttemptIndex": 2, + "takenAt": "2023-08-31T18:56:03.412Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed) (attempt 3).png", + "height": 1440, + "width": 2560 + }, + { + "screenshotId": "SIEOu4ZBP5kSFVQnA9ZrP", + "name": "screenshot", + "testId": "r0", + "testAttemptIndex": 3, + "takenAt": "2023-08-31T18:56:04.030Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed) (attempt 4).png", + "height": 1440, + "width": 2560 + } + ], + "hasCoverage": false, + "tests": [ + { + "displayError": "Error: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n at Context.eval (webpack://web/./cypress/e2e/retries.js:9:12)", + "state": "failed", + "hooks": [ + { + "hookId": "h1", + "hookName": "before each", + "title": ["\"before each\" hook"], + "body": "function () {\n cy.visit(\"/\");\n}" + }, + { + "hookId": "h3", + "hookName": "after each", + "title": ["\"after each\" hook"], + "body": "function () {\n self.sendLogsToPrinter(self.collectorState.getCurrentLogStackIndex(), self.collectorState.getCurrentTest());\n }" + }, + { + "hookId": "h2", + "hookName": "after all", + "title": ["\"after all\" hook"], + "body": "function () {\n // Need to wait otherwise some last commands get omitted from logs.\n cy.task(CONSTANTS.TASK_NAME_OUTPUT, null, {log: false});\n }" + } + ], + "attempts": [ + { + "state": "failed", + "error": { + "name": "Error", + "message": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "stack": " at Context.eval (webpack://web/./cypress/e2e/retries.js:9:12)", + "codeFrame": { + "line": 9, + "column": 13, + "originalFile": "cypress/e2e/retries.js", + "relativeFile": "examples/webapp/cypress/e2e/retries.js", + "absoluteFile": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/e2e/retries.js", + "frame": " 7 | },\n 8 | function () {\n> 9 | throw new Error(\"x\".repeat(1024));\n | ^\n 10 | // if (i > 1) {\n 11 | // i--;\n 12 | // }", + "language": "js" + } + }, + "timings": { + "lifecycle": 78, + "before each": [ + { "hookId": "h1", "fnDuration": 281, "afterFnDuration": 1 } + ], + "test": { "fnDuration": 5, "afterFnDuration": 224 }, + "after each": [ + { "hookId": "h3", "fnDuration": 18, "afterFnDuration": 1 } + ] + }, + "failedFromHookId": null, + "wallClockStartedAt": "2023-08-31T18:56:02.235Z", + "wallClockDuration": 612, + "videoTimestamp": 1084, + "startedAt": "2023-08-31T18:56:02.235Z", + "duration": 612, + "screenshots": [ + { + "screenshotId": "3g8ko", + "name": "screenshot", + "testId": "r3", + "testAttemptIndex": 0, + "takenAt": "2023-08-31T18:56:02.606Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed).png", + "height": 1440, + "width": 2560 + } + ] + }, + { + "state": "failed", + "error": { + "name": "Error", + "message": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "stack": " at Context.eval (webpack://web/./cypress/e2e/retries.js:9:12)", + "codeFrame": { + "line": 9, + "column": 13, + "originalFile": "cypress/e2e/retries.js", + "relativeFile": "examples/webapp/cypress/e2e/retries.js", + "absoluteFile": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/e2e/retries.js", + "frame": " 7 | },\n 8 | function () {\n> 9 | throw new Error(\"x\".repeat(1024));\n | ^\n 10 | // if (i > 1) {\n 11 | // i--;\n 12 | // }", + "language": "js" + } + }, + "timings": { + "lifecycle": 36, + "before each": [ + { "hookId": "h1", "fnDuration": 76, "afterFnDuration": 0 } + ], + "test": { "fnDuration": 4, "afterFnDuration": 216 }, + "after each": [ + { "hookId": "h3", "fnDuration": 20, "afterFnDuration": 0 } + ] + }, + "failedFromHookId": null, + "wallClockStartedAt": "2023-08-31T18:56:02.869Z", + "wallClockDuration": 356, + "videoTimestamp": 1718, + "startedAt": "2023-08-31T18:56:02.869Z", + "duration": 356, + "screenshots": [ + { + "screenshotId": "3itba", + "name": "screenshot", + "testId": "r3", + "testAttemptIndex": 1, + "takenAt": "2023-08-31T18:56:02.987Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed) (attempt 2).png", + "height": 1440, + "width": 2560 + } + ] + }, + { + "state": "failed", + "error": { + "name": "Error", + "message": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "stack": " at Context.eval (webpack://web/./cypress/e2e/retries.js:9:12)", + "codeFrame": { + "line": 9, + "column": 13, + "originalFile": "cypress/e2e/retries.js", + "relativeFile": "examples/webapp/cypress/e2e/retries.js", + "absoluteFile": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/e2e/retries.js", + "frame": " 7 | },\n 8 | function () {\n> 9 | throw new Error(\"x\".repeat(1024));\n | ^\n 10 | // if (i > 1) {\n 11 | // i--;\n 12 | // }", + "language": "js" + } + }, + "timings": { + "lifecycle": 50, + "before each": [ + { "hookId": "h1", "fnDuration": 102, "afterFnDuration": 0 } + ], + "test": { "fnDuration": 4, "afterFnDuration": 282 }, + "after each": [ + { "hookId": "h3", "fnDuration": 38, "afterFnDuration": 1 } + ] + }, + "failedFromHookId": null, + "wallClockStartedAt": "2023-08-31T18:56:03.239Z", + "wallClockDuration": 483, + "videoTimestamp": 2088, + "startedAt": "2023-08-31T18:56:03.239Z", + "duration": 483, + "screenshots": [ + { + "screenshotId": "5idl7", + "name": "screenshot", + "testId": "r3", + "testAttemptIndex": 2, + "takenAt": "2023-08-31T18:56:03.412Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed) (attempt 3).png", + "height": 1440, + "width": 2560 + } + ] + }, + { + "state": "failed", + "error": { + "name": "Error", + "message": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "stack": " at Context.eval (webpack://web/./cypress/e2e/retries.js:9:12)", + "codeFrame": { + "line": 9, + "column": 13, + "originalFile": "cypress/e2e/retries.js", + "relativeFile": "examples/webapp/cypress/e2e/retries.js", + "absoluteFile": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/e2e/retries.js", + "frame": " 7 | },\n 8 | function () {\n> 9 | throw new Error(\"x\".repeat(1024));\n | ^\n 10 | // if (i > 1) {\n 11 | // i--;\n 12 | // }", + "language": "js" + } + }, + "timings": { + "lifecycle": 128, + "before each": [ + { "hookId": "h1", "fnDuration": 127, "afterFnDuration": 0 } + ], + "test": { "fnDuration": 6, "afterFnDuration": 275 }, + "after each": [ + { "hookId": "h3", "fnDuration": 25, "afterFnDuration": 0 } + ], + "after all": [ + { "hookId": "h2", "fnDuration": 20, "afterFnDuration": 0 } + ] + }, + "failedFromHookId": null, + "wallClockStartedAt": "2023-08-31T18:56:03.753Z", + "wallClockDuration": 644, + "videoTimestamp": 2602, + "startedAt": "2023-08-31T18:56:03.753Z", + "duration": 644, + "screenshots": [ + { + "screenshotId": "t3jyo", + "name": "screenshot", + "testId": "r3", + "testAttemptIndex": 3, + "takenAt": "2023-08-31T18:56:04.030Z", + "path": "/Users/agoldis/cypress-cloud/examples/webapp/cypress/screenshots/retries.js/Retries -- Runs a test with retries (failed) (attempt 4).png", + "height": 1440, + "width": 2560 + } + ] + } + ], + "clientId": "r0" + } + ] +} diff --git a/e2e/results/13.0.0.json b/e2e/results/13.0.0.json new file mode 100644 index 0000000..96904a6 --- /dev/null +++ b/e2e/results/13.0.0.json @@ -0,0 +1,44 @@ +{ + "stats": { + "duration": 1649, + "endedAt": "2023-08-31T19:03:08.099Z", + "startedAt": "2023-08-31T19:03:06.450Z", + "failures": 1, + "passes": 0, + "pending": 0, + "skipped": 0, + "suites": 1, + "tests": 1, + "wallClockDuration": 1649, + "wallClockStartedAt": "2023-08-31T19:03:06.450Z", + "wallClockEndedAt": "2023-08-31T19:03:08.099Z" + }, + "reporterStats": { + "suites": 1, + "tests": 1, + "passes": 0, + "pending": 0, + "failures": 1, + "start": "2023-08-31T19:03:06.454Z", + "end": "2023-08-31T19:03:08.102Z", + "duration": 1648 + }, + "exception": null, + "video": true, + "screenshots": [], + "hasCoverage": false, + "tests": [ + { + "displayError": "Error: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n at Context.eval (webpack://web/./cypress/e2e/retries.js:9:12)", + "state": "failed", + "hooks": [], + "attempts": [ + { "state": "failed", "screenshots": [], "wallClockDuration": 0 }, + { "state": "failed", "screenshots": [], "wallClockDuration": 0 }, + { "state": "failed", "screenshots": [], "wallClockDuration": 0 }, + { "state": "failed", "screenshots": [], "wallClockDuration": 0 } + ], + "clientId": "r0" + } + ] +} diff --git a/examples/coverage/currents.config.js b/examples/coverage/currents.config.js index 546451e..f71af20 100644 --- a/examples/coverage/currents.config.js +++ b/examples/coverage/currents.config.js @@ -1,8 +1,8 @@ const isCI = !!(process.env.GITHUB_ACTION || process.env.CIRCLE_BRANCH); module.exports = { - projectId: isCI ? "Ij0RfK" : "VGLEa1", - cloudServiceUrl: !isCI ? "http://localhost:1234" : undefined, - recordKey: process.env.CURRENTS_RECORD_KEY || "DsDpjPk0ITxBLTmn", - userAgent: "custom", + projectId: isCI ? "Ij0RfK" : "Ij0RfK", + // cloudServiceUrl: !isCI ? "http://localhost:1234" : undefined, + // recordKey: process.env.CURRENTS_RECORD_KEY || "DsDpjPk0ITxBLTmn", + // userAgent: "custom", }; diff --git a/examples/webapp/cypress.config.ts b/examples/webapp/cypress.config.ts index f50a480..ac9cd25 100644 --- a/examples/webapp/cypress.config.ts +++ b/examples/webapp/cypress.config.ts @@ -2,14 +2,14 @@ import { defineConfig } from "cypress"; import currents from "cypress-cloud/plugin"; module.exports = defineConfig({ + video: true, e2e: { projectId: !!(process.env.GITHUB_ACTION || process.env.CIRCLE_BRANCH) ? "Ij0RfK" : "l4zuz8", baseUrl: "https://todomvc.com/examples/vanillajs", - videoUploadOnPasses: false, supportFile: "cypress/support/e2e.ts", - specPattern: "cypress/*/**/*.spec.js", + specPattern: "cypress/e2e/*.js", setupNodeEvents(on, config) { require("@cypress/grep/src/plugin")(config); require("cypress-terminal-report/src/installLogsPrinter")(on); diff --git a/examples/webapp/cypress/e2e/completed.spec.js b/examples/webapp/cypress/ddd/completed.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/completed.spec.js rename to examples/webapp/cypress/ddd/completed.spec.js diff --git a/examples/webapp/cypress/e2e/counter.spec.js b/examples/webapp/cypress/ddd/counter.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/counter.spec.js rename to examples/webapp/cypress/ddd/counter.spec.js diff --git a/examples/webapp/cypress/e2e/edit.spec.js b/examples/webapp/cypress/ddd/edit.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/edit.spec.js rename to examples/webapp/cypress/ddd/edit.spec.js diff --git a/examples/webapp/cypress/e2e/item.spec.js b/examples/webapp/cypress/ddd/item.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/item.spec.js rename to examples/webapp/cypress/ddd/item.spec.js diff --git a/examples/webapp/cypress/e2e/labels.spec.js b/examples/webapp/cypress/ddd/labels.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/labels.spec.js rename to examples/webapp/cypress/ddd/labels.spec.js diff --git a/examples/webapp/cypress/e2e/new.spec.js b/examples/webapp/cypress/ddd/new.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/new.spec.js rename to examples/webapp/cypress/ddd/new.spec.js diff --git a/examples/webapp/cypress/e2e/persistance.spec.js b/examples/webapp/cypress/ddd/persistance.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/persistance.spec.js rename to examples/webapp/cypress/ddd/persistance.spec.js diff --git a/examples/webapp/cypress/e2e/routing.spec.js b/examples/webapp/cypress/ddd/routing.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/routing.spec.js rename to examples/webapp/cypress/ddd/routing.spec.js diff --git a/examples/webapp/cypress/e2e/smoke.spec.js b/examples/webapp/cypress/ddd/smoke.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/smoke.spec.js rename to examples/webapp/cypress/ddd/smoke.spec.js diff --git a/examples/webapp/cypress/e2e/todo.no-items.spec.js b/examples/webapp/cypress/ddd/todo.no-items.spec.js similarity index 100% rename from examples/webapp/cypress/e2e/todo.no-items.spec.js rename to examples/webapp/cypress/ddd/todo.no-items.spec.js diff --git a/examples/webapp/cypress/e2e/retries.js b/examples/webapp/cypress/e2e/retries.js new file mode 100644 index 0000000..2f43e44 --- /dev/null +++ b/examples/webapp/cypress/e2e/retries.js @@ -0,0 +1,16 @@ +let i = 3; +describe("Retries", function () { + it( + "Runs a test with retries", + { + retries: 3, + }, + function () { + throw new Error("x".repeat(1024)); + // if (i > 1) { + // i--; + // } + // return; + } + ); +}); diff --git a/examples/webapp/cypress/e2e/clear.spec.js b/examples/webapp/cypress/e2e/xxx.js similarity index 88% rename from examples/webapp/cypress/e2e/clear.spec.js rename to examples/webapp/cypress/e2e/xxx.js index f7ebe00..d54f091 100644 --- a/examples/webapp/cypress/e2e/clear.spec.js +++ b/examples/webapp/cypress/e2e/xxx.js @@ -1,6 +1,6 @@ -let TODO_ITEM_ONE = "buy some cheese"; -let TODO_ITEM_TWO = "feed the cat"; -let TODO_ITEM_THREE = "book a doctors appointment"; +let TODO_ITEM_ONE = "item A"; +let TODO_ITEM_TWO = "item B"; +let TODO_ITEM_THREE = "item C"; context("Clear completed button", function () { beforeEach(function () { @@ -14,7 +14,6 @@ context("Clear completed button", function () { }, function () { cy.get("@todos").eq(0).find(".toggle").check(); - cy.get(".clear-completed").contains("Clear completed X"); } ); diff --git a/examples/webapp/package.json b/examples/webapp/package.json index 7fcee08..9eccbad 100644 --- a/examples/webapp/package.json +++ b/examples/webapp/package.json @@ -10,7 +10,7 @@ "cypress:script:esm": "node scripts/currents-script.mjs" }, "dependencies": { - "cypress": "^12.6.0", + "cypress": "^12.17.4", "cypress-cloud": "*", "cypress-terminal-report": "^5.3.3", "next": "^13.2.1", diff --git a/examples/webapp/scripts/cypress-example.mjs b/examples/webapp/scripts/cypress-example.mjs new file mode 100644 index 0000000..c7f1115 --- /dev/null +++ b/examples/webapp/scripts/cypress-example.mjs @@ -0,0 +1,14 @@ +import { run } from "cypress"; + +(async function main() { + const result = await run({ + video: true, + e2e: { + baseUrl: "https://todomvc.com/examples/vanillajs", + supportFile: "cypress/support/e2e.ts", + specPattern: "cypress/e2e/*.js", + }, + }); + + console.log(result); +})(); diff --git a/package-lock.json b/package-lock.json index c3c40ed..27f35f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -253,7 +253,7 @@ "name": "web", "version": "0.0.0", "dependencies": { - "cypress": "^12.6.0", + "cypress": "^12.17.4", "cypress-cloud": "*", "cypress-terminal-report": "^5.3.3", "next": "^13.2.1", @@ -272,6 +272,34 @@ "typescript": "^4.7.4" } }, + "examples/webapp/node_modules/@cypress/request": { + "version": "2.88.12", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", + "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.10.3", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, "examples/webapp/node_modules/@next/eslint-plugin-next": { "version": "12.3.4", "dev": true, @@ -285,6 +313,82 @@ "dev": true, "license": "MIT" }, + "examples/webapp/node_modules/cypress": { + "version": "12.17.4", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.17.4.tgz", + "integrity": "sha512-gAN8Pmns9MA5eCDFSDJXWKUpaL3IDd89N9TtIupjYnzLSmlpVr+ZR+vb4U/qaMp+lB6tBvAmt7504c3Z4RU5KQ==", + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "2.88.12", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^16.18.39", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + } + }, + "examples/webapp/node_modules/cypress/node_modules/@types/node": { + "version": "16.18.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.46.tgz", + "integrity": "sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg==" + }, + "examples/webapp/node_modules/cypress/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "examples/webapp/node_modules/eslint-config-custom": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/eslint-config-custom/-/eslint-config-custom-0.0.0.tgz", @@ -376,6 +480,19 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "examples/webapp/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "examples/webapp/node_modules/glob": { "version": "7.1.7", "dev": true, @@ -2453,8 +2570,9 @@ } }, "node_modules/@cypress/request": { - "version": "2.88.10", - "license": "Apache-2.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.0.tgz", + "integrity": "sha512-GKFCqwZwMYmL3IBoNeR2MM1SnxRIGERsQOTWeQKoYBt2JLqcqiy7JXqO894FLrpjZYqGxW92MNwRH2BN56obdQ==", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -2469,9 +2587,9 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "~6.5.2", + "qs": "~6.10.3", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", + "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" }, @@ -2481,7 +2599,8 @@ }, "node_modules/@cypress/request/node_modules/form-data": { "version": "2.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -3466,20 +3585,6 @@ "node": ">=0.8" } }, - "node_modules/@parcel/core/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/diagnostic": { "version": "2.9.3", "dev": true, @@ -3641,20 +3746,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/node-resolver-core/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/optimizer-css": { "version": "2.9.3", "dev": true, @@ -3984,20 +4075,6 @@ "@parcel/core": "^2.9.3" } }, - "node_modules/@parcel/package-manager/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/packager-css": { "version": "2.9.3", "dev": true, @@ -4307,20 +4384,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/transformer-babel/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/transformer-css": { "version": "2.9.3", "dev": true, @@ -4367,20 +4430,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/transformer-html/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/transformer-image": { "version": "2.9.3", "dev": true, @@ -4435,20 +4484,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@parcel/transformer-js/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/transformer-json": { "version": "2.9.3", "dev": true, @@ -4497,20 +4532,6 @@ "node": ">=0.8" } }, - "node_modules/@parcel/transformer-postcss/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/transformer-posthtml": { "version": "2.9.3", "dev": true, @@ -4533,20 +4554,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/transformer-posthtml/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/transformer-raw": { "version": "2.9.3", "dev": true, @@ -4604,20 +4611,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/transformer-svg/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/types": { "version": "2.9.3", "dev": true, @@ -5785,14 +5778,16 @@ }, "node_modules/asn1": { "version": "0.2.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dependencies": { "safer-buffer": "~2.1.0" } }, "node_modules/assert-plus": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "engines": { "node": ">=0.8" } @@ -5844,14 +5839,16 @@ }, "node_modules/aws-sign2": { "version": "0.7.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "node_modules/axe-core": { "version": "4.6.1", @@ -6077,7 +6074,8 @@ }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dependencies": { "tweetnacl": "^0.14.3" } @@ -6525,7 +6523,8 @@ }, "node_modules/caseless": { "version": "0.12.0", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "node_modules/chalk": { "version": "4.1.2", @@ -6945,8 +6944,9 @@ } }, "node_modules/commander": { - "version": "5.1.0", - "license": "MIT", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "engines": { "node": ">= 6" } @@ -7087,7 +7087,8 @@ }, "node_modules/core-util-is": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "node_modules/cosmiconfig": { "version": "8.0.0", @@ -7356,13 +7357,14 @@ } }, "node_modules/cypress": { - "version": "12.8.1", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.0.0.tgz", + "integrity": "sha512-nWHU5dUxP2Wm/zrMd8SWTTl706aJex/l+H4vi/tbu2SWUr17BUcd/sIYeqyxeoSPW1JFV2pT1pf4JEImH/POMg==", "hasInstallScript": true, - "license": "MIT", "dependencies": { - "@cypress/request": "^2.88.10", + "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", + "@types/node": "^16.18.39", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -7374,7 +7376,7 @@ "check-more-types": "^2.24.0", "cli-cursor": "^3.1.0", "cli-table3": "~0.6.1", - "commander": "^5.1.0", + "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", "debug": "^4.3.4", @@ -7392,12 +7394,13 @@ "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.6", + "minimist": "^1.2.8", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", + "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", @@ -7407,7 +7410,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" } }, "node_modules/cypress-cloud": { @@ -7443,8 +7446,9 @@ } }, "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.35", - "license": "MIT" + "version": "16.18.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.46.tgz", + "integrity": "sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -7460,7 +7464,8 @@ }, "node_modules/dashdash": { "version": "1.14.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dependencies": { "assert-plus": "^1.0.0" }, @@ -7940,7 +7945,8 @@ }, "node_modules/ecc-jsbn": { "version": "0.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -8803,7 +8809,8 @@ }, "node_modules/extend": { "version": "3.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/external-editor": { "version": "3.1.0", @@ -8860,6 +8867,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "license": "MIT" @@ -8887,6 +8902,11 @@ "version": "2.0.6", "license": "MIT" }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "node_modules/fastq": { "version": "1.14.0", "license": "ISC", @@ -9154,7 +9174,8 @@ }, "node_modules/forever-agent": { "version": "0.6.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "engines": { "node": "*" } @@ -9441,7 +9462,8 @@ }, "node_modules/getpass": { "version": "0.1.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dependencies": { "assert-plus": "^1.0.0" } @@ -9829,7 +9851,8 @@ }, "node_modules/http-signature": { "version": "1.3.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", @@ -10474,7 +10497,8 @@ }, "node_modules/isstream": { "version": "0.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "node_modules/issue-parser": { "version": "6.0.0", @@ -11230,7 +11254,8 @@ }, "node_modules/jsbn": { "version": "0.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -11260,7 +11285,8 @@ }, "node_modules/json-schema": { "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -11325,10 +11351,11 @@ }, "node_modules/jsprim": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", "engines": [ "node >=0.6.0" ], - "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -11336,32 +11363,6 @@ "verror": "1.10.0" } }, - "node_modules/jsprim/node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/jsprim/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/jsprim/node_modules/verror/node_modules/extsprintf": { - "version": "1.4.1", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "license": "MIT", @@ -12063,8 +12064,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "license": "MIT", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12941,7 +12943,8 @@ }, "node_modules/performance-now": { "version": "2.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -13259,7 +13262,8 @@ }, "node_modules/psl": { "version": "1.9.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "node_modules/pump": { "version": "3.0.0", @@ -13291,12 +13295,24 @@ } }, "node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/queue-microtask": { "version": "1.2.3", "funding": [ @@ -13706,6 +13722,11 @@ "dev": true, "license": "ISC" }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, "node_modules/resolve": { "version": "1.22.1", "license": "MIT", @@ -14002,8 +14023,9 @@ "peer": true }, "node_modules/semver": { - "version": "7.3.8", - "license": "ISC", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -14282,7 +14304,8 @@ }, "node_modules/sshpk": { "version": "1.17.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -14939,14 +14962,25 @@ } }, "node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { - "node": ">=0.8" + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" } }, "node_modules/tr46": { @@ -15255,7 +15289,8 @@ }, "node_modules/tunnel-agent": { "version": "0.6.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -15376,7 +15411,8 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "license": "Unlicense" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/type-detect": { "version": "4.0.8", @@ -15608,6 +15644,15 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "dev": true, @@ -15658,6 +15703,19 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "node_modules/wait-on": { "version": "7.0.1", "dev": true, @@ -16130,6 +16188,7 @@ "cy2": "^3.4.2", "debug": "^4.3.4", "execa": "^5.1.1", + "fast-safe-stringify": "^2.1.1", "getos": "^3.2.1", "globby": "^11.1.0", "is-absolute": "^1.0.0", @@ -16157,7 +16216,7 @@ "@types/jest": "^29.2.4", "@types/lodash": "^4.14.191", "@types/ws": "^8.5.4", - "cypress": "^12.6.0", + "cypress": "^13.0.0", "esbuild": "^0.16.5", "eslint": "^7.32.0", "eslint-config-custom": "latest", @@ -16171,9 +16230,6 @@ }, "engines": { "node": ">=14.7.0" - }, - "peerDependencies": { - "cypress": ">=10.0.0" } }, "packages/cypress-cloud/node_modules/@next/eslint-plugin-next": { @@ -18927,7 +18983,9 @@ } }, "@cypress/request": { - "version": "2.88.10", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.0.tgz", + "integrity": "sha512-GKFCqwZwMYmL3IBoNeR2MM1SnxRIGERsQOTWeQKoYBt2JLqcqiy7JXqO894FLrpjZYqGxW92MNwRH2BN56obdQ==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -18942,15 +19000,17 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "~6.5.2", + "qs": "~6.10.3", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", + "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" }, "dependencies": { "form-data": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -19628,13 +19688,6 @@ "clone": { "version": "2.1.2", "dev": true - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -19713,15 +19766,6 @@ "@parcel/utils": "2.9.3", "nullthrows": "^1.1.1", "semver": "^7.5.2" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@parcel/optimizer-css": { @@ -19922,15 +19966,6 @@ "@parcel/utils": "2.9.3", "@parcel/workers": "2.9.3", "semver": "^7.5.2" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@parcel/packager-css": { @@ -20094,15 +20129,6 @@ "json5": "^2.2.0", "nullthrows": "^1.1.1", "semver": "^7.5.2" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@parcel/transformer-css": { @@ -20131,15 +20157,6 @@ "posthtml-render": "^3.0.0", "semver": "^7.5.2", "srcset": "4" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@parcel/transformer-image": { @@ -20174,13 +20191,6 @@ "requires": { "tslib": "^2.4.0" } - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -20209,13 +20219,6 @@ "clone": { "version": "2.1.2", "dev": true - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -20230,15 +20233,6 @@ "posthtml-parser": "^0.10.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@parcel/transformer-raw": { @@ -20269,15 +20263,6 @@ "posthtml-parser": "^0.10.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@parcel/types": { @@ -21085,12 +21070,16 @@ }, "asn1": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "requires": { "safer-buffer": "~2.1.0" } }, "assert-plus": { - "version": "1.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, "ast-types": { "version": "0.13.4", @@ -21122,10 +21111,14 @@ "version": "1.0.0" }, "aws-sign2": { - "version": "0.7.0" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" }, "aws4": { - "version": "1.11.0" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "axe-core": { "version": "4.6.1" @@ -21277,6 +21270,8 @@ }, "bcrypt-pbkdf": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "requires": { "tweetnacl": "^0.14.3" } @@ -21521,7 +21516,9 @@ "version": "1.0.30001517" }, "caseless": { - "version": "0.12.0" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "chalk": { "version": "4.1.2", @@ -21770,7 +21767,9 @@ } }, "commander": { - "version": "5.1.0" + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" }, "common-path-prefix": { "version": "3.0.0" @@ -21862,7 +21861,9 @@ "version": "3.26.1" }, "core-util-is": { - "version": "1.0.2" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "cosmiconfig": { "version": "8.0.0", @@ -22043,11 +22044,13 @@ } }, "cypress": { - "version": "12.8.1", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.0.0.tgz", + "integrity": "sha512-nWHU5dUxP2Wm/zrMd8SWTTl706aJex/l+H4vi/tbu2SWUr17BUcd/sIYeqyxeoSPW1JFV2pT1pf4JEImH/POMg==", "requires": { - "@cypress/request": "^2.88.10", + "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", + "@types/node": "^16.18.39", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -22059,7 +22062,7 @@ "check-more-types": "^2.24.0", "cli-cursor": "^3.1.0", "cli-table3": "~0.6.1", - "commander": "^5.1.0", + "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", "debug": "^4.3.4", @@ -22077,12 +22080,13 @@ "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.6", + "minimist": "^1.2.8", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", + "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", @@ -22090,7 +22094,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.35" + "version": "16.18.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.46.tgz", + "integrity": "sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg==" } } }, @@ -22115,12 +22121,13 @@ "commander": "^10.0.0", "common-path-prefix": "^3.0.0", "cy2": "^3.4.2", - "cypress": "^12.6.0", + "cypress": "13", "debug": "^4.3.4", "esbuild": "^0.16.5", "eslint": "^7.32.0", "eslint-config-custom": "latest", "execa": "^5.1.1", + "fast-safe-stringify": "^2.1.1", "getos": "^3.2.1", "globby": "^11.1.0", "is-absolute": "^1.0.0", @@ -23217,6 +23224,8 @@ }, "dashdash": { "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "requires": { "assert-plus": "^1.0.0" } @@ -23490,6 +23499,8 @@ }, "ecc-jsbn": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -24072,7 +24083,9 @@ } }, "extend": { - "version": "3.0.2" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "external-editor": { "version": "3.1.0", @@ -24109,6 +24122,11 @@ } } }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, "fast-deep-equal": { "version": "3.1.3" }, @@ -24130,6 +24148,11 @@ "fast-levenshtein": { "version": "2.0.6" }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "fastq": { "version": "1.14.0", "requires": { @@ -24279,7 +24302,9 @@ } }, "forever-agent": { - "version": "0.6.1" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" }, "form-data": { "version": "4.0.0", @@ -24459,6 +24484,8 @@ }, "getpass": { "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "requires": { "assert-plus": "^1.0.0" } @@ -24675,6 +24702,8 @@ }, "http-signature": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", "requires": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", @@ -25008,7 +25037,9 @@ "version": "2.0.0" }, "isstream": { - "version": "0.1.2" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "issue-parser": { "version": "6.0.0", @@ -25546,7 +25577,9 @@ } }, "jsbn": { - "version": "0.1.1" + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "jsesc": { "version": "2.5.2", @@ -25565,7 +25598,9 @@ "dev": true }, "json-schema": { - "version": "0.4.0" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "json-schema-traverse": { "version": "0.4.1" @@ -25605,29 +25640,13 @@ }, "jsprim": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.3.0" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.4.1" - } - } - } } }, "jsx-ast-utils": { @@ -26078,7 +26097,9 @@ } }, "minimist": { - "version": "1.2.7" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minimist-options": { "version": "4.1.0", @@ -26616,7 +26637,9 @@ "version": "1.2.0" }, "performance-now": { - "version": "2.1.0" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0" @@ -26793,7 +26816,9 @@ } }, "psl": { - "version": "1.9.0" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "pump": { "version": "3.0.0", @@ -26813,7 +26838,17 @@ } }, "qs": { - "version": "6.5.3" + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { "version": "1.2.3" @@ -27074,6 +27109,11 @@ "version": "2.0.0", "dev": true }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, "resolve": { "version": "1.22.1", "requires": { @@ -27249,7 +27289,9 @@ } }, "semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -27428,6 +27470,8 @@ }, "sshpk": { "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -27979,10 +28023,21 @@ } }, "tough-cookie": { - "version": "2.5.0", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" + } } }, "tr46": { @@ -28179,6 +28234,8 @@ }, "tunnel-agent": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "requires": { "safe-buffer": "^5.0.1" } @@ -28243,7 +28300,9 @@ "version": "1.3.0" }, "tweetnacl": { - "version": "0.14.5" + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "type-detect": { "version": "4.0.8", @@ -28369,6 +28428,15 @@ "version": "5.0.0", "dev": true }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "dev": true @@ -28403,6 +28471,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "wait-on": { "version": "7.0.1", "dev": true, @@ -28458,7 +28536,7 @@ "@types/node": "^17.0.12", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", - "cypress": "^12.6.0", + "cypress": "^12.17.4", "cypress-cloud": "*", "cypress-terminal-report": "^5.3.3", "eslint": "7.32.0", @@ -28471,6 +28549,31 @@ "typescript": "^4.7.4" }, "dependencies": { + "@cypress/request": { + "version": "2.88.12", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", + "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.10.3", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + } + }, "@next/eslint-plugin-next": { "version": "12.3.4", "dev": true, @@ -28482,6 +28585,71 @@ "version": "17.0.45", "dev": true }, + "cypress": { + "version": "12.17.4", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.17.4.tgz", + "integrity": "sha512-gAN8Pmns9MA5eCDFSDJXWKUpaL3IDd89N9TtIupjYnzLSmlpVr+ZR+vb4U/qaMp+lB6tBvAmt7504c3Z4RU5KQ==", + "requires": { + "@cypress/request": "2.88.12", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^16.18.39", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "@types/node": { + "version": "16.18.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.46.tgz", + "integrity": "sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "eslint-config-custom": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/eslint-config-custom/-/eslint-config-custom-0.0.0.tgz", @@ -28553,6 +28721,16 @@ } } }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "glob": { "version": "7.1.7", "dev": true, diff --git a/packages/cypress-cloud/lib/results/mapResult.ts b/packages/cypress-cloud/lib/results/mapResult.ts index 1b7aefc..0e4646f 100644 --- a/packages/cypress-cloud/lib/results/mapResult.ts +++ b/packages/cypress-cloud/lib/results/mapResult.ts @@ -48,27 +48,42 @@ export function specResultsToCypressResults( configState: ConfigState, specAfterResult: SpecAfter.SpecResult ): CypressCommandLine.CypressRunResult { + const stats = { + duration: + specAfterResult.stats.duration ?? + (specAfterResult.stats.wallClockDuration as number) ?? + 0, + endedAt: + specAfterResult.stats.endedAt ?? + specAfterResult.stats.wallClockEndedAt ?? + new Date().toISOString(), + startedAt: + specAfterResult.stats.startedAt ?? + specAfterResult.stats.wallClockStartedAt ?? + new Date().toISOString(), + failures: specAfterResult.stats.failures ?? 0, + passes: specAfterResult.stats.passes ?? 0, + pending: specAfterResult.stats.pending ?? 0, + skipped: specAfterResult.stats.skipped ?? 0, + suites: specAfterResult.stats.suites ?? 0, + tests: specAfterResult.stats.tests ?? 0, + }; return { status: "finished", // @ts-ignore config: configState.getConfig(), - totalDuration: specAfterResult.stats.wallClockDuration, - totalSuites: specAfterResult.stats.suites, - totalTests: specAfterResult.stats.tests, - totalFailed: specAfterResult.stats.failures, - totalPassed: specAfterResult.stats.passes, - totalPending: specAfterResult.stats.pending, - totalSkipped: specAfterResult.stats.skipped, - startedTestsAt: specAfterResult.stats.wallClockStartedAt, - endedTestsAt: specAfterResult.stats.wallClockEndedAt, + totalDuration: stats.duration, + totalSuites: stats.suites, + totalTests: stats.tests, + totalFailed: stats.failures, + totalPassed: stats.passes, + totalPending: stats.pending, + totalSkipped: stats.skipped ?? 0, + startedTestsAt: stats.startedAt, + endedTestsAt: stats.endedAt, runs: [ { - stats: { - ...specAfterResult.stats, - startedAt: specAfterResult.stats.wallClockStartedAt, - endedAt: specAfterResult.stats.wallClockEndedAt, - duration: specAfterResult.stats.wallClockDuration, - }, + stats, reporter: specAfterResult.reporter, reporterStats: specAfterResult.reporterStats ?? {}, spec: specAfterResult.spec, diff --git a/packages/cypress-cloud/lib/results/results.ts b/packages/cypress-cloud/lib/results/results.ts index f9380de..2c34fe0 100644 --- a/packages/cypress-cloud/lib/results/results.ts +++ b/packages/cypress-cloud/lib/results/results.ts @@ -46,7 +46,7 @@ export const getTestAttempt = (attempt: CypressCommandLine.AttemptResult) => { return { ...attempt, state: attempt.state as TestState, - wallClockDuration: attempt.duration, + wallClockDuration: attempt.duration ?? 0, wallClockStartedAt: attempt.startedAt, }; }; @@ -66,7 +66,7 @@ export const getInstanceResultPayload = ( runResult.tests?.map((test, i) => ({ displayError: test.displayError, state: test.state as TestState, - hooks: runResult.hooks, + hooks: runResult.hooks ?? [], attempts: test.attempts?.map(getTestAttempt) ?? [], clientId: `r${i}`, })) ?? [], @@ -111,11 +111,11 @@ export const getInstanceTestsPayload = ( runResult.tests?.map((test, i) => ({ title: test.title, config: null, - body: test.body, + body: test.body ?? "redacted", clientId: `r${i}`, hookIds: [], })) ?? [], - hooks: runResult.hooks, + hooks: runResult.hooks ?? [], }; }; @@ -127,6 +127,7 @@ export const summarizeTestResults = ( return getEmptyCypressResults(config); } + debugger; const overall = input.reduce( ( acc, diff --git a/packages/cypress-cloud/lib/run.ts b/packages/cypress-cloud/lib/run.ts index 5e7cf20..582d4f9 100644 --- a/packages/cypress-cloud/lib/run.ts +++ b/packages/cypress-cloud/lib/run.ts @@ -12,6 +12,7 @@ import { preprocessParams, validateParams, } from "./config"; +import { getCoverageFilePath } from "./coverage"; import { runBareCypress } from "./cypress"; import { activateDebug } from "./debug"; import { isCurrents } from "./env"; @@ -30,7 +31,6 @@ import { shutdown } from "./shutdown"; import { getSpecFiles } from "./specMatcher"; import { ConfigState, ExecutionState } from "./state"; import { startWSS } from "./ws"; -import { getCoverageFilePath } from "./coverage"; const debug = Debug("currents:run"); @@ -165,6 +165,10 @@ function listenToSpecEvents( experimentalCoverageRecording?: boolean ) { const config = configState.getConfig(); + pubsub.on("test:after:run", async (test: any) => { + console.log("test:after:run"); + console.log(test); + }); pubsub.on("before:spec", async ({ spec }: { spec: Cypress.Spec }) => { debug("before:spec %o", spec); executionState.setSpecBefore(spec.relative); diff --git a/packages/cypress-cloud/lib/runner/spec.type.ts b/packages/cypress-cloud/lib/runner/spec.type.ts index ab827b8..2d9d617 100644 --- a/packages/cypress-cloud/lib/runner/spec.type.ts +++ b/packages/cypress-cloud/lib/runner/spec.type.ts @@ -56,6 +56,9 @@ export interface Stats { wallClockStartedAt: string; wallClockEndedAt: string; wallClockDuration: number; + duration: string; + startedAt: string; + endedAt: number; } export interface Test { diff --git a/packages/cypress-cloud/package.json b/packages/cypress-cloud/package.json index 52347f3..a50474b 100644 --- a/packages/cypress-cloud/package.json +++ b/packages/cypress-cloud/package.json @@ -40,7 +40,7 @@ "@types/jest": "^29.2.4", "@types/lodash": "^4.14.191", "@types/ws": "^8.5.4", - "cypress": "^12.6.0", + "cypress": "^13.0.0", "esbuild": "^0.16.5", "eslint": "^7.32.0", "eslint-config-custom": "latest", @@ -63,6 +63,7 @@ "cy2": "^3.4.2", "debug": "^4.3.4", "execa": "^5.1.1", + "fast-safe-stringify": "^2.1.1", "getos": "^3.2.1", "globby": "^11.1.0", "is-absolute": "^1.0.0", @@ -76,9 +77,6 @@ "ts-pattern": "^4.3.0", "ws": "^8.13.0" }, - "peerDependencies": { - "cypress": ">=10.0.0" - }, "bin": { "cypress-cloud": "./dist/bin/cli.js" }, diff --git a/packages/cypress-cloud/plugin/index.ts b/packages/cypress-cloud/plugin/index.ts index 4c4661f..0b0d264 100644 --- a/packages/cypress-cloud/plugin/index.ts +++ b/packages/cypress-cloud/plugin/index.ts @@ -14,6 +14,10 @@ export async function cloudPlugin( } } + on("after:screenshot", (details) => { + console.log("screenshot", details); + }); + let ws: WebSocket | null = null; function sendToWS(message: unknown) { if (ws) { @@ -31,6 +35,14 @@ export async function cloudPlugin( }); } + on("task", { + "currents:test:after:run": (test) => { + console.log("test:after:run"); + console.log(JSON.parse(test)); + return null; + }, + }); + debug("currents plugin loaded"); if (config.env.currents_temp_file) { diff --git a/packages/cypress-cloud/support/index.ts b/packages/cypress-cloud/support/index.ts index 5b20191..5376c50 100644 --- a/packages/cypress-cloud/support/index.ts +++ b/packages/cypress-cloud/support/index.ts @@ -1,3 +1,32 @@ /// -export { }; +import safeStringify from "fast-safe-stringify"; +localStorage.debug = "cypress:*"; +const reportedTests: string[] = []; + +function sendTestMetrics(test: Mocha.Test) { + if (test.pending || !test.state) { + // Test is either skipped or hasn't ran yet. + // We need to check this because all tests will show up in the hook every time + return; + } + reportedTests.push(test.fullTitle()); + cy.task("currents:test:after:run", safeStringify(test)); +} + +function sendSuite(suite: Mocha.Suite) { + suite.eachTest((test) => { + if (!reportedTests.includes(test.fullTitle())) { + sendTestMetrics(test); + } + }); +} + +afterEach(() => { + // @ts-ignore + const afterHook = cy.state("runnable"); + + if (afterHook.parent) { + sendSuite(afterHook.parent); + } +});