From 447d0463f1bc96451c3b5c5dc51b9829a43615ab Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 12:33:30 +0000 Subject: [PATCH 01/12] Updated cypress version to 14.4.1 --- ui-tests/package-lock.json | 404 ++++++++++++++++++++++--------------- ui-tests/package.json | 2 +- 2 files changed, 238 insertions(+), 168 deletions(-) diff --git a/ui-tests/package-lock.json b/ui-tests/package-lock.json index 0e36df74525..f9c7bfb0372 100644 --- a/ui-tests/package-lock.json +++ b/ui-tests/package-lock.json @@ -16,22 +16,13 @@ "moment": "^2.29.4" }, "devDependencies": { - "cypress": "^13.6.4" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" + "cypress": "^14.4.1" } }, "node_modules/@cypress/request": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.6.tgz", - "integrity": "sha512-fi0eVdCOtKu5Ed6+E8mYxUF6ZTFJDZvHogCBelM0xVXmrDEkyM22gRArQzq1YcHPm1V47Vf/iAD+WgVdUlJCGg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz", + "integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==", "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", @@ -47,7 +38,7 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "6.13.0", + "qs": "6.14.0", "safe-buffer": "^5.1.2", "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", @@ -343,17 +334,27 @@ "node": ">=6" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -427,9 +428,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz", + "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==", "funding": [ { "type": "github", @@ -461,9 +462,10 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -471,7 +473,7 @@ "node": "10.* || >= 12.*" }, "optionalDependencies": { - "@colors/colors": "1.5.0" + "colors": "1.4.0" } }, "node_modules/cli-truncate": { @@ -510,6 +512,16 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -559,25 +571,26 @@ } }, "node_modules/cypress": { - "version": "13.6.4", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.4.tgz", - "integrity": "sha512-pYJjCfDYB+hoOoZuhysbbYhEmNW7DEDsqn+ToCLwuVowxUXppIWRr7qk4TVRIU471ksfzyZcH+mkoF0CQUKnpw==", + "version": "14.4.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.4.1.tgz", + "integrity": "sha512-YSGvVXtTqSGRTyHbaxHI5dHU/9xc5ymaTIM4BU85GKhj980y6XgA3fShSpj5DatS8knXMsAvYItQxVQFHGpUtw==", "hasInstallScript": true, "license": "MIT", "dependencies": { - "@cypress/request": "^3.0.0", + "@cypress/request": "^3.0.8", "@cypress/xvfb": "^1.2.4", "@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", + "buffer": "^5.7.1", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", + "ci-info": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", + "cli-table3": "0.6.1", "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", @@ -590,7 +603,6 @@ "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", @@ -602,9 +614,10 @@ "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.5.3", + "semver": "^7.7.1", "supports-color": "^8.1.1", - "tmp": "~0.2.1", + "tmp": "~0.2.3", + "tree-kill": "1.2.2", "untildify": "^4.0.0", "yauzl": "^2.10.0" }, @@ -612,7 +625,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" } }, "node_modules/cypress-file-upload": { @@ -667,23 +680,6 @@ "node": ">=6" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -693,6 +689,20 @@ "node": ">=0.4.0" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -728,13 +738,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -748,6 +755,33 @@ "node": ">= 0.4" } }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -860,13 +894,15 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -905,16 +941,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -923,6 +964,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -969,12 +1023,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -993,22 +1047,10 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -1017,11 +1059,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -1098,18 +1143,6 @@ "node": ">=10" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -1337,15 +1370,13 @@ "get-func-name": "^2.0.1" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" } }, "node_modules/merge-stream": { @@ -1416,9 +1447,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -1537,12 +1568,12 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -1611,12 +1642,10 @@ "license": "MIT" }, "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" - }, + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -1624,23 +1653,6 @@ "node": ">=10" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -1661,15 +1673,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -1778,21 +1844,21 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tldts": { - "version": "6.1.60", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.60.tgz", - "integrity": "sha512-TYVHm7G9NCnhgqOsFalbX6MG1Po5F4efF+tLfoeiOGQq48Oqgwcgz8upY2R1BHWa4aDrj28RYx0dkYJ63qCFMg==", + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", "license": "MIT", "dependencies": { - "tldts-core": "^6.1.60" + "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.60", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.60.tgz", - "integrity": "sha512-XHjoxak8SFQnHnmYHb3PcnW5TZ+9ErLZemZei3azuIRhQLw4IExsVbL3VZJdHcLeNaXq6NqawgpDPpjBOg4B5g==", + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", "license": "MIT" }, "node_modules/tmp": { @@ -1805,9 +1871,9 @@ } }, "node_modules/tough-cookie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", - "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", "license": "BSD-3-Clause", "dependencies": { "tldts": "^6.1.32" @@ -1816,6 +1882,15 @@ "node": ">=16" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", @@ -1930,11 +2005,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/ui-tests/package.json b/ui-tests/package.json index 5084cea17d6..862c4f90779 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -16,6 +16,6 @@ "moment": "^2.29.4" }, "devDependencies": { - "cypress": "^13.6.4" + "cypress": "^14.4.1" } } From 57aadd239d8430ecaab345d1a782d51ad6c44cc5 Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 13:18:58 +0000 Subject: [PATCH 02/12] Added testReplay parameter enabled false --- ui-tests/cypress.config.sample.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui-tests/cypress.config.sample.js b/ui-tests/cypress.config.sample.js index 2154821f775..a6b3ae0fc55 100644 --- a/ui-tests/cypress.config.sample.js +++ b/ui-tests/cypress.config.sample.js @@ -12,6 +12,9 @@ module.exports = defineConfig({ projectId: "000000", chromeWebSecurity: false, watchForFileChanges: true, + testReplay: { + enabled: false, + }, video: true, setupNodeEvents(on, config) { on('after:spec', (spec, results) => { From 698d58cf55802663e86d7a261971241be7f228f9 Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 13:26:21 +0000 Subject: [PATCH 03/12] Added new parameter to cypress config --- ui-tests/cypress.config.sample.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui-tests/cypress.config.sample.js b/ui-tests/cypress.config.sample.js index a6b3ae0fc55..85aa7d799b5 100644 --- a/ui-tests/cypress.config.sample.js +++ b/ui-tests/cypress.config.sample.js @@ -39,7 +39,8 @@ module.exports = defineConfig({ launchOptions.args.push("--disable-gpu"); launchOptions.args.push("--disable-dev-shm-usage"); } - launchOptions.args.push('--js-flags="--max_old_space_size=3500 --max_semi_space_size=1024"'); + launchOptions.args.push('--js-flags="--max_old_space_size=4096 --max_semi_space_size=1024"'); + launchOptions.args.push("--disable-software-rasterizer"); } return launchOptions; }); From cad13b7089bb2bd0fe50d66be17580b59c408787 Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 13:50:55 +0000 Subject: [PATCH 04/12] Empty-Commit From 1704a45256826cb8fc3d9efeb855acf92848062d Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 15:05:39 +0000 Subject: [PATCH 05/12] Updaed chrome as electron --- ui-tests/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui-tests/package.json b/ui-tests/package.json index 862c4f90779..9b1206b5136 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -4,8 +4,8 @@ "description": "e2e testing", "author": "Countly, Inc.", "scripts": { - "cy:run:dashboard": "node ./cypress/fixtures/generators/generateFixtures.js && cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/dashboard/**/*.cy.js --headless --no-runner-ui --browser chrome", - "cy:run:onboarding": "cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/onboarding/**/*.cy.js --headless --no-runner-ui --browser chrome" + "cy:run:dashboard": "node ./cypress/fixtures/generators/generateFixtures.js && cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/dashboard/**/*.cy.js --headless --no-runner-ui --browser electron", + "cy:run:onboarding": "cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/onboarding/**/*.cy.js --headless --no-runner-ui --browser electron" }, "license": "ISC", "dependencies": { From 0e489521a7ace039d9c0623fe7b14005afe8d42a Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 15:24:11 +0000 Subject: [PATCH 06/12] Added 16core to ui test jobs --- .github/workflows/main.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 71f1c39272d..b4738d24fc0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -243,7 +243,8 @@ jobs: node bin/scripts/test.connection.js npx grunt mochaTest ui-test-dashboard: - runs-on: ubuntu-latest + runs-on: + labels: ubuntu-latest-16core services: mongodb: @@ -326,7 +327,8 @@ jobs: curl -o /tmp/uploader.log -u "${{ secrets.BOX_UPLOAD_AUTH }}" ${{ secrets.BOX_UPLOAD_PATH }} -T "$ARTIFACT_ARCHIVE_NAME" ui-test-onboarding: - runs-on: ubuntu-latest + runs-on: + labels: ubuntu-latest-16core services: mongodb: From 252146859b585faa91de058321efdd8b055779b9 Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 15:28:26 +0000 Subject: [PATCH 07/12] Updated ubuntu version as 22.04 --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b4738d24fc0..549aab5da6b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -244,7 +244,7 @@ jobs: npx grunt mochaTest ui-test-dashboard: runs-on: - labels: ubuntu-latest-16core + labels: ubuntu-22.04-16core services: mongodb: @@ -328,7 +328,7 @@ jobs: ui-test-onboarding: runs-on: - labels: ubuntu-latest-16core + labels: ubuntu-22.04-16core services: mongodb: From 5020327a51075806569f37678f69e1ab4b0d5090 Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 15:41:17 +0000 Subject: [PATCH 08/12] Removed ubuntu core --- .github/workflows/main.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 549aab5da6b..71f1c39272d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -243,8 +243,7 @@ jobs: node bin/scripts/test.connection.js npx grunt mochaTest ui-test-dashboard: - runs-on: - labels: ubuntu-22.04-16core + runs-on: ubuntu-latest services: mongodb: @@ -327,8 +326,7 @@ jobs: curl -o /tmp/uploader.log -u "${{ secrets.BOX_UPLOAD_AUTH }}" ${{ secrets.BOX_UPLOAD_PATH }} -T "$ARTIFACT_ARCHIVE_NAME" ui-test-onboarding: - runs-on: - labels: ubuntu-22.04-16core + runs-on: ubuntu-latest services: mongodb: From bf7495fc17051b0db6f13024496588106f27b158 Mon Sep 17 00:00:00 2001 From: can-angun Date: Tue, 10 Jun 2025 16:26:44 +0000 Subject: [PATCH 09/12] Empty-Commit From ef3c273eed9a967d29ca91019bda0fa1c1323dd1 Mon Sep 17 00:00:00 2001 From: can-angun Date: Wed, 11 Jun 2025 08:30:09 +0000 Subject: [PATCH 10/12] Added timeout and matrix --- .github/workflows/main.yml | 10 +++++++++- ui-tests/package.json | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 71f1c39272d..d4918101ed9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -244,6 +244,10 @@ jobs: npx grunt mochaTest ui-test-dashboard: runs-on: ubuntu-latest + timeout-minutes: 30 + strategy: + matrix: + node: [14, 16] services: mongodb: @@ -327,7 +331,11 @@ jobs: ui-test-onboarding: runs-on: ubuntu-latest - + timeout-minutes: 30 + strategy: + matrix: + node: [14, 16] + services: mongodb: image: mongo:8.0 diff --git a/ui-tests/package.json b/ui-tests/package.json index 9b1206b5136..862c4f90779 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -4,8 +4,8 @@ "description": "e2e testing", "author": "Countly, Inc.", "scripts": { - "cy:run:dashboard": "node ./cypress/fixtures/generators/generateFixtures.js && cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/dashboard/**/*.cy.js --headless --no-runner-ui --browser electron", - "cy:run:onboarding": "cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/onboarding/**/*.cy.js --headless --no-runner-ui --browser electron" + "cy:run:dashboard": "node ./cypress/fixtures/generators/generateFixtures.js && cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/dashboard/**/*.cy.js --headless --no-runner-ui --browser chrome", + "cy:run:onboarding": "cypress run --record --key 00000000-0000-0000-0000-000000000000 --spec **/onboarding/**/*.cy.js --headless --no-runner-ui --browser chrome" }, "license": "ISC", "dependencies": { From 341b38331c2c9af472a655f29f2dd382c00bd484 Mon Sep 17 00:00:00 2001 From: can-angun Date: Wed, 11 Jun 2025 08:46:08 +0000 Subject: [PATCH 11/12] Added parallel run tests --- .github/workflows/main.yml | 64 +++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d4918101ed9..2d885c23bad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -241,13 +241,15 @@ jobs: npm install /sbin/my_init & node bin/scripts/test.connection.js - npx grunt mochaTest + npx grunt mochaTest + ui-test-dashboard: runs-on: ubuntu-latest timeout-minutes: 30 + strategy: matrix: - node: [14, 16] + part: [1, 2] services: mongodb: @@ -283,7 +285,9 @@ jobs: - name: Prepare files to use correct MongoDB host shell: bash - run: "sed -i 's/mongosh --quiet/mongosh --host mongodb --quiet/' /opt/countly/bin/backup/import_events.sh && sed -i 's/mongoimport --db/mongoimport --host mongodb --db/' /opt/countly/bin/backup/import_events.sh" + run: | + sed -i 's/mongosh --quiet/mongosh --host mongodb --quiet/' /opt/countly/bin/backup/import_events.sh + sed -i 's/mongoimport --db/mongoimport --host mongodb --db/' /opt/countly/bin/backup/import_events.sh - name: NPM install shell: bash @@ -309,15 +313,30 @@ jobs: cp cypress.config.sample.js cypress.config.js sed -i 's/000000/${{ secrets.CYPRESS_PROJECT_ID }}/g' cypress.config.js - - name: Run UI tests + - name: Run UI tests in parallel parts shell: bash - working-directory: /opt/countly + working-directory: /opt/countly/ui-tests run: | /sbin/my_init & - cd ui-tests npm install + + # Test dosyalarını parçalayalım (örnek): + TEST_FILES=( $(find cypress/e2e/dashboard -name '*.cy.js' | sort) ) + TOTAL=${#TEST_FILES[@]} + HALF=$(( (TOTAL + 1) / 2 )) + + if [[ "${{ matrix.part }}" == "1" ]]; then + SPEC_FILES="${TEST_FILES[@]:0:$HALF}" + else + SPEC_FILES="${TEST_FILES[@]:$HALF}" + fi + + echo "Running part ${{ matrix.part }} with specs:" + echo $SPEC_FILES + + # Cypress komutunu bu dosyalarla çalıştır xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" \ - npm run cy:run:dashboard + npx cypress run --spec "${SPEC_FILES// /,}" - name: Upload UI tests artifacts if: ${{ failure() }} @@ -329,13 +348,15 @@ jobs: tar zcvf "$ARTIFACT_ARCHIVE_NAME" screenshots videos curl -o /tmp/uploader.log -u "${{ secrets.BOX_UPLOAD_AUTH }}" ${{ secrets.BOX_UPLOAD_PATH }} -T "$ARTIFACT_ARCHIVE_NAME" + ui-test-onboarding: runs-on: ubuntu-latest timeout-minutes: 30 + strategy: matrix: - node: [14, 16] - + part: [1, 2] + services: mongodb: image: mongo:8.0 @@ -370,7 +391,9 @@ jobs: - name: Prepare files to use correct MongoDB host shell: bash - run: "sed -i 's/mongosh --quiet/mongosh --host mongodb --quiet/' /opt/countly/bin/backup/import_events.sh && sed -i 's/mongoimport --db/mongoimport --host mongodb --db/' /opt/countly/bin/backup/import_events.sh" + run: | + sed -i 's/mongosh --quiet/mongosh --host mongodb --quiet/' /opt/countly/bin/backup/import_events.sh + sed -i 's/mongoimport --db/mongoimport --host mongodb --db/' /opt/countly/bin/backup/import_events.sh - name: NPM install shell: bash @@ -392,15 +415,28 @@ jobs: cp cypress.config.sample.js cypress.config.js sed -i 's/000000/${{ secrets.CYPRESS_PROJECT_ID }}/g' cypress.config.js - - name: Run UI tests + - name: Run UI tests in parallel parts shell: bash - working-directory: /opt/countly + working-directory: /opt/countly/ui-tests run: | /sbin/my_init & - cd ui-tests npm install + + TEST_FILES=( $(find cypress/e2e/onboarding -name '*.cy.js' | sort) ) + TOTAL=${#TEST_FILES[@]} + HALF=$(( (TOTAL + 1) / 2 )) + + if [[ "${{ matrix.part }}" == "1" ]]; then + SPEC_FILES="${TEST_FILES[@]:0:$HALF}" + else + SPEC_FILES="${TEST_FILES[@]:$HALF}" + fi + + echo "Running part ${{ matrix.part }} with specs:" + echo $SPEC_FILES + xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" \ - npm run cy:run:onboarding + npx cypress run --spec "${SPEC_FILES// /,}" - name: Upload UI tests artifacts if: ${{ failure() }} From 32d57f68f5928e89b6371bf6966eeb3d7b12c162 Mon Sep 17 00:00:00 2001 From: can-angun Date: Wed, 11 Jun 2025 09:16:50 +0000 Subject: [PATCH 12/12] Updated split case script --- .github/workflows/main.yml | 76 ++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2d885c23bad..a7e66a50611 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -245,7 +245,7 @@ jobs: ui-test-dashboard: runs-on: ubuntu-latest - timeout-minutes: 30 + timeout-minutes: 90 strategy: matrix: @@ -313,37 +313,33 @@ jobs: cp cypress.config.sample.js cypress.config.js sed -i 's/000000/${{ secrets.CYPRESS_PROJECT_ID }}/g' cypress.config.js - - name: Run UI tests in parallel parts + - name: Split dashboard test files for parallel execution shell: bash working-directory: /opt/countly/ui-tests run: | /sbin/my_init & npm install - - # Test dosyalarını parçalayalım (örnek): - TEST_FILES=( $(find cypress/e2e/dashboard -name '*.cy.js' | sort) ) - TOTAL=${#TEST_FILES[@]} - HALF=$(( (TOTAL + 1) / 2 )) - - if [[ "${{ matrix.part }}" == "1" ]]; then - SPEC_FILES="${TEST_FILES[@]:0:$HALF}" - else - SPEC_FILES="${TEST_FILES[@]:$HALF}" - fi - - echo "Running part ${{ matrix.part }} with specs:" - echo $SPEC_FILES - - # Cypress komutunu bu dosyalarla çalıştır - xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" \ - npx cypress run --spec "${SPEC_FILES// /,}" + FILES=($(find cypress/e2e/dashboard -type f -name '*.cy.js' | sort)) + SELECTED=() + for i in "${!FILES[@]}"; do + INDEX=$((i % 2 + 1)) + if [ "$INDEX" -eq "${{ matrix.part }}" ]; then + SELECTED+=("${FILES[$i]}") + fi + done + echo "SELECTED_SPECS=${SELECTED[*]}" >> $GITHUB_OUTPUT + + - name: Run dashboard Cypress tests + run: | + echo "Running specs: ${{ steps.split-dashboard-tests.outputs.SELECTED_SPECS }}" + npx cypress run --browser chrome --spec "${{ steps.split-dashboard-tests.outputs.SELECTED_SPECS }}" - name: Upload UI tests artifacts if: ${{ failure() }} shell: bash working-directory: /opt/countly/ui-tests/cypress run: | - ARTIFACT_ARCHIVE_NAME="$(date '+%Y%m%d-%H.%M')_${GITHUB_REPOSITORY#*/}_CI#${{ github.run_number }}.tar.gz" + ARTIFACT_ARCHIVE_NAME="$(date '+%Y%m%d-%H.%M')_${GITHUB_REPOSITORY#*/}_CI#${{ github.run_number }}-part-${{ matrix.part }}.tar.gz" mkdir -p screenshots videos tar zcvf "$ARTIFACT_ARCHIVE_NAME" screenshots videos curl -o /tmp/uploader.log -u "${{ secrets.BOX_UPLOAD_AUTH }}" ${{ secrets.BOX_UPLOAD_PATH }} -T "$ARTIFACT_ARCHIVE_NAME" @@ -351,7 +347,7 @@ jobs: ui-test-onboarding: runs-on: ubuntu-latest - timeout-minutes: 30 + timeout-minutes: 90 strategy: matrix: @@ -415,35 +411,35 @@ jobs: cp cypress.config.sample.js cypress.config.js sed -i 's/000000/${{ secrets.CYPRESS_PROJECT_ID }}/g' cypress.config.js - - name: Run UI tests in parallel parts + - name: Split onboarding test files for parallel execution shell: bash working-directory: /opt/countly/ui-tests run: | /sbin/my_init & npm install + + FILES=($(find cypress/e2e/onboarding -type f -name '*.cy.js' | sort)) + SELECTED=() + for i in "${!FILES[@]}"; do + INDEX=$((i % 2 + 1)) + if [ "$INDEX" -eq "${{ matrix.part }}" ]; then + SELECTED+=("${FILES[$i]}") + fi + done + echo "SELECTED_SPECS=${SELECTED[*]}" >> $GITHUB_OUTPUT + + - name: Run onboarding Cypress tests + run: | + echo "Running specs: ${{ steps.split-onboarding-tests.outputs.SELECTED_SPECS }}" + npx cypress run --browser chrome --spec "${{ steps.split-onboarding-tests.outputs.SELECTED_SPECS }}" - TEST_FILES=( $(find cypress/e2e/onboarding -name '*.cy.js' | sort) ) - TOTAL=${#TEST_FILES[@]} - HALF=$(( (TOTAL + 1) / 2 )) - - if [[ "${{ matrix.part }}" == "1" ]]; then - SPEC_FILES="${TEST_FILES[@]:0:$HALF}" - else - SPEC_FILES="${TEST_FILES[@]:$HALF}" - fi - - echo "Running part ${{ matrix.part }} with specs:" - echo $SPEC_FILES - - xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" \ - npx cypress run --spec "${SPEC_FILES// /,}" - + - name: Upload UI tests artifacts if: ${{ failure() }} shell: bash working-directory: /opt/countly/ui-tests/cypress run: | - ARTIFACT_ARCHIVE_NAME="$(date '+%Y%m%d-%H.%M')_${GITHUB_REPOSITORY#*/}_CI#${{ github.run_number }}.tar.gz" + ARTIFACT_ARCHIVE_NAME="$(date '+%Y%m%d-%H.%M')_${GITHUB_REPOSITORY#*/}_CI#${{ github.run_number }}-part-${{ matrix.part }}.tar.gz" mkdir -p screenshots videos tar zcvf "$ARTIFACT_ARCHIVE_NAME" screenshots videos curl -o /tmp/uploader.log -u "${{ secrets.BOX_UPLOAD_AUTH }}" ${{ secrets.BOX_UPLOAD_PATH }} -T "$ARTIFACT_ARCHIVE_NAME"