From 6a2808a549d4d273e1e0b70ad4bc4d6a7591abf5 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Thu, 7 Sep 2023 19:35:35 -0700 Subject: [PATCH 01/24] [cypress] Increase Windows CI timeout to 120 minutes Also treat failure to connect to Chrome DevTools as test-independent, which is potentially new error text in Cypress 13. --- .github/workflows/ci.yaml | 2 +- packages/cypress-plugin/test/integration/unflakable.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a7fbc3f..7b043e5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -210,7 +210,7 @@ jobs: name: "Cypress ${{ matrix.cypress }} Windows Node ${{ matrix.node }} Integration Tests" runs-on: windows-2019 # Cypress on Windows is slowwww... - timeout-minutes: 90 + timeout-minutes: 120 needs: # Don't incur the cost of the test matrix if the basic build fails. - check diff --git a/packages/cypress-plugin/test/integration/unflakable.js b/packages/cypress-plugin/test/integration/unflakable.js index d24c20f..96914fb 100644 --- a/packages/cypress-plugin/test/integration/unflakable.js +++ b/packages/cypress-plugin/test/integration/unflakable.js @@ -9,6 +9,7 @@ module.exports = { /attempting to close the browser tab(?:(?!resetting server state).)*$/s, /Still waiting to connect to Edge, retrying in 1 second.*(?:Error: Test timed out after|All promises were rejected)/s, /There was an error reconnecting to the Chrome DevTools protocol\. Please restart the browser\./, + /Cypress failed to make a connection to the Chrome DevTools Protocol after retrying/, // When this error occurs, Cypress ends up printing the "Running: " header multiple times, // which the integration test parses as if that spec were in fact invoked multiple times. We // don't want the test itself to ignore multiple spec invocations since that could indicate a From deec7d332b0d98c442a2c4e2e755e600bbf27495 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Fri, 8 Sep 2023 18:49:29 -0700 Subject: [PATCH 02/24] [cypress] Bump CI container for Real World App to Node 18 See https://github.com/cypress-io/cypress-realworld-app/pull/1396. --- .github/workflows/cypress-realworld-app.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cypress-realworld-app.yaml b/.github/workflows/cypress-realworld-app.yaml index eab82bc..63c169c 100644 --- a/.github/workflows/cypress-realworld-app.yaml +++ b/.github/workflows/cypress-realworld-app.yaml @@ -16,7 +16,7 @@ jobs: timeout-minutes: 15 runs-on: ubuntu-latest container: - image: cypress/browsers:node16.16.0-chrome105-ff104-edge + image: cypress/browsers:node-18.16.0-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 options: --user 1001 steps: - name: Check out latest cypress-io/cypress-realworld-app @@ -62,7 +62,7 @@ jobs: # tarballs. Otherwise, Yarn may install the previously cached version from an earlier build # with the same package version number. run: | - curl -Lo jq https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 + wget -O jq https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 chmod +x jq yarn cache clean @unflakable/js-api From 7a33438820a2e895dad39a3372401dbbdf97bde3 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 20:44:54 -0700 Subject: [PATCH 03/24] [cypress] Increase integration test timeout to 4 minutes --- packages/cypress-plugin/test/integration/jest.config.js | 2 +- packages/cypress-plugin/test/integration/src/run-test-case.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cypress-plugin/test/integration/jest.config.js b/packages/cypress-plugin/test/integration/jest.config.js index eeb9323..5184100 100644 --- a/packages/cypress-plugin/test/integration/jest.config.js +++ b/packages/cypress-plugin/test/integration/jest.config.js @@ -13,6 +13,6 @@ module.exports = { setupFilesAfterEnv: ["jest-expect-message", "./src/matchers.ts"], testEnvironment: "node", // NB: This should be greater than TEST_TIMEOUT_MS used by the watchdog in runTestCase(). - testTimeout: 120000, + testTimeout: 240000, verbose: true, }; diff --git a/packages/cypress-plugin/test/integration/src/run-test-case.ts b/packages/cypress-plugin/test/integration/src/run-test-case.ts index 5e9b235..414f076 100644 --- a/packages/cypress-plugin/test/integration/src/run-test-case.ts +++ b/packages/cypress-plugin/test/integration/src/run-test-case.ts @@ -36,9 +36,9 @@ import { import cypressPackage from "cypress/package.json"; import semverLt from "semver/functions/lt"; -// Jest times out after 120 seconds, so we bail early here to allow time to print the +// Jest times out after 240 seconds, so we bail early here to allow time to print the // captured output before Jest kills the test. -const TEST_TIMEOUT_MS = 110000; +const TEST_TIMEOUT_MS = 230000; const userAgentRegex = new RegExp( "unflakable-js-api/(?:[-0-9.]|alpha|beta)+ unflakable-cypress-plugin/(?:[-0-9.]|alpha|beta)+ \\(Cypress [0-9]+\\.[0-9]+\\.[0-9]+; Node v[0-9]+\\.[0-9]+\\.[0-9]\\)" From 4dc4c6fe91fc7375624b3c015e3f35d38b1605af Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 18:45:39 -0700 Subject: [PATCH 04/24] Bump mockttp to 3.9.2 This eliminates the transitive dependency on vm2, which is affected by CVE-2023-37466/GHSA-cchq-frgv-rjh5. Please note that these dependencies are only used for this repository's integration tests and are not part of the plugins packaged for end users. --- .../test/integration/package.json | 2 +- .../jest-plugin/test/integration/package.json | 2 +- packages/test-common/package.json | 2 +- yarn.lock | 322 +++++++----------- 4 files changed, 123 insertions(+), 205 deletions(-) diff --git a/packages/cypress-plugin/test/integration/package.json b/packages/cypress-plugin/test/integration/package.json index 6382d0b..36a0a97 100644 --- a/packages/cypress-plugin/test/integration/package.json +++ b/packages/cypress-plugin/test/integration/package.json @@ -12,7 +12,7 @@ "jest": "^29.5.0", "jest-environment-node": "^29.5.0", "jest-expect-message": "^1.1.3", - "mockttp": "^3.7.5", + "mockttp": "^3.9.2", "semver": "^7.5.4", "ts-jest": "^29.1.0", "typescript": "^4.9.5", diff --git a/packages/jest-plugin/test/integration/package.json b/packages/jest-plugin/test/integration/package.json index c80c811..26d5f5a 100644 --- a/packages/jest-plugin/test/integration/package.json +++ b/packages/jest-plugin/test/integration/package.json @@ -16,7 +16,7 @@ "jest-environment-node": "25.1.0 - 29", "jest-get-type": "25.1.0 - 29", "jest-matcher-utils": "25.1.0 - 29", - "mockttp": "^3.7.5", + "mockttp": "^3.9.2", "semver": "^7.5.4", "tmp": "^0.2.1", "typescript": "^4.9.5", diff --git a/packages/test-common/package.json b/packages/test-common/package.json index f1b4508..548d460 100644 --- a/packages/test-common/package.json +++ b/packages/test-common/package.json @@ -6,7 +6,7 @@ "debug": "^4.3.3", "deep-equal": "^2.0.5", "expect": "25.1.0 - 29", - "mockttp": "^3.7.5", + "mockttp": "^3.9.2", "simple-git": "^3.16.0", "tree-kill": "^1.2.2" }, diff --git a/yarn.lock b/yarn.lock index d805a5d..d4d21d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2653,13 +2653,6 @@ __metadata: languageName: node linkType: hard -"@tootallnate/once@npm:1": - version: 1.1.2 - resolution: "@tootallnate/once@npm:1.1.2" - checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 - languageName: node - linkType: hard - "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -2667,6 +2660,13 @@ __metadata: languageName: node linkType: hard +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: c350a2947ffb80b22e14ff35099fd582d1340d65723384a0fd0515e905e2534459ad2f301a43279a37308a27c99273c932e64649abd57d0bb3ca8c557150eccc + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.8 resolution: "@tsconfig/node10@npm:1.0.8" @@ -3511,14 +3511,14 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.2.0": +"acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0": +"acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0": version: 8.8.2 resolution: "acorn@npm:8.8.2" bin: @@ -3536,6 +3536,15 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f + languageName: node + linkType: hard + "agentkeepalive@npm:^4.2.1": version: 4.2.1 resolution: "agentkeepalive@npm:4.2.1" @@ -3808,7 +3817,7 @@ __metadata: languageName: node linkType: hard -"ast-types@npm:^0.13.2": +"ast-types@npm:^0.13.4": version: 0.13.4 resolution: "ast-types@npm:0.13.4" dependencies: @@ -4024,6 +4033,13 @@ __metadata: languageName: node linkType: hard +"basic-ftp@npm:^5.0.2": + version: 5.0.3 + resolution: "basic-ftp@npm:5.0.3" + checksum: 8b04e88eb85a64de9311721bb0707c9cd70453eefdd854cab85438e6f46fb6c597ddad57ed1acf0a9ede3c677b14e657f51051688a5f23d6f3ea7b5d9073b850 + languageName: node + linkType: hard + "bcrypt-pbkdf@npm:^1.0.0": version: 1.0.2 resolution: "bcrypt-pbkdf@npm:1.0.2" @@ -4820,7 +4836,7 @@ __metadata: jest: ^29.5.0 jest-environment-node: ^29.5.0 jest-expect-message: ^1.1.3 - mockttp: ^3.7.5 + mockttp: ^3.9.2 semver: ^7.5.4 ts-jest: ^29.1.0 typescript: ^4.9.5 @@ -4901,10 +4917,10 @@ __metadata: languageName: node linkType: hard -"data-uri-to-buffer@npm:3": - version: 3.0.1 - resolution: "data-uri-to-buffer@npm:3.0.1" - checksum: c59c3009686a78c071806b72f4810856ec28222f0f4e252aa495ec027ed9732298ceea99c50328cf59b151dd34cbc3ad6150bbb43e41fc56fa19f48c99e9fc30 +"data-uri-to-buffer@npm:^5.0.1": + version: 5.0.1 + resolution: "data-uri-to-buffer@npm:5.0.1" + checksum: 10958f89c0047b84bd86d572b6b77c9bf238ebe7b55a9a9ab04c90fbf5ab1881783b72e31dc0febdffd30ec914930244f2f728e3629bb8911d922baba129426f languageName: node linkType: hard @@ -4991,7 +5007,7 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 @@ -5022,15 +5038,14 @@ __metadata: languageName: node linkType: hard -"degenerator@npm:^3.0.2": - version: 3.0.4 - resolution: "degenerator@npm:3.0.4" +"degenerator@npm:^5.0.0": + version: 5.0.1 + resolution: "degenerator@npm:5.0.1" dependencies: - ast-types: ^0.13.2 - escodegen: ^1.8.1 - esprima: ^4.0.0 - vm2: ^3.9.17 - checksum: 99c27c9456095e32c4f6e01091d2b5c249f246b574487c52bca571e1e586b02d4b74a0ea7f22f30cc953c914383d02e2038d7d476a22f2704a8c1e88b671007d + ast-types: ^0.13.4 + escodegen: ^2.1.0 + esprima: ^4.0.1 + checksum: a64fa39cdf6c2edd75188157d32338ee9de7193d7dbb2aeb4acb1eb30fa4a15ed80ba8dae9bd4d7b085472cf174a5baf81adb761aaa8e326771392c922084152 languageName: node linkType: hard @@ -5416,14 +5431,13 @@ __metadata: languageName: node linkType: hard -"escodegen@npm:^1.8.1": - version: 1.14.3 - resolution: "escodegen@npm:1.14.3" +"escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" dependencies: esprima: ^4.0.1 - estraverse: ^4.2.0 + estraverse: ^5.2.0 esutils: ^2.0.2 - optionator: ^0.8.1 source-map: ~0.6.1 dependenciesMeta: source-map: @@ -5431,7 +5445,7 @@ __metadata: bin: escodegen: bin/escodegen.js esgenerate: bin/esgenerate.js - checksum: 381cdc4767ecdb221206bbbab021b467bbc2a6f5c9a99c9e6353040080bdd3dfe73d7604ad89a47aca6ea7d58bc635f6bd3fbc8da9a1998e9ddfa8372362ccd0 + checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 languageName: node linkType: hard @@ -5646,7 +5660,7 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^4.1.1, estraverse@npm:^4.2.0": +"estraverse@npm:^4.1.1": version: 4.3.0 resolution: "estraverse@npm:4.3.0" checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 @@ -5883,7 +5897,7 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c @@ -5935,13 +5949,6 @@ __metadata: languageName: node linkType: hard -"file-uri-to-path@npm:2": - version: 2.0.0 - resolution: "file-uri-to-path@npm:2.0.0" - checksum: 4a71a99ddaa6ae7ae7bffe2948c34da59982ed465d930a0af9cb59fcc10fcd93366cc356ec3337c18373fde5df7ac52afda4558f155febd1799d135552207edb - languageName: node - linkType: hard - "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -6177,16 +6184,6 @@ __metadata: languageName: node linkType: hard -"ftp@npm:^0.3.10": - version: 0.3.10 - resolution: "ftp@npm:0.3.10" - dependencies: - readable-stream: 1.1.x - xregexp: 2.0.0 - checksum: ddd313c1d44eb7429f3a7d77a0155dc8fe86a4c64dca58f395632333ce4b4e74c61413c6e0ef66ea3f3d32d905952fbb6d028c7117d522f793eb1fa282e17357 - languageName: node - linkType: hard - "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -6295,17 +6292,15 @@ __metadata: languageName: node linkType: hard -"get-uri@npm:3": - version: 3.0.2 - resolution: "get-uri@npm:3.0.2" +"get-uri@npm:^6.0.1": + version: 6.0.1 + resolution: "get-uri@npm:6.0.1" dependencies: - "@tootallnate/once": 1 - data-uri-to-buffer: 3 - debug: 4 - file-uri-to-path: 2 + basic-ftp: ^5.0.2 + data-uri-to-buffer: ^5.0.1 + debug: ^4.3.4 fs-extra: ^8.1.0 - ftp: ^0.3.10 - checksum: 5325b2906b08ca37529ca421cf52bc50376e75c6a945e0a8064e3f76b4bb67b8ab1e316a2fc7a307c8c606ab36d030720f39a57c97b027ff1134335e12102946 + checksum: a8aec70e1c67386fbe67f66e344ecd671a19f4cfc8e0f0e14d070563af5123d540e77fbceb6e26566f29846fac864d2862699ab134d307f85c85e7d72ce23d14 languageName: node linkType: hard @@ -6671,17 +6666,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^4.0.1": - version: 4.0.1 - resolution: "http-proxy-agent@npm:4.0.1" - dependencies: - "@tootallnate/once": 1 - agent-base: 6 - debug: 4 - checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 - languageName: node - linkType: hard - "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -6693,6 +6677,16 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 + languageName: node + linkType: hard + "http-signature@npm:~1.3.6": version: 1.3.6 resolution: "http-signature@npm:1.3.6" @@ -6714,7 +6708,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:5, https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" dependencies: @@ -6724,6 +6718,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 + languageName: node + linkType: hard + "human-signals@npm:^1.1.1": version: 1.1.1 resolution: "human-signals@npm:1.1.1" @@ -6832,7 +6836,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.1, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -6857,10 +6861,10 @@ __metadata: languageName: node linkType: hard -"ip@npm:^1.1.5": - version: 1.1.5 - resolution: "ip@npm:1.1.5" - checksum: 30133981f082a060a32644f6a7746e9ba7ac9e2bc07ecc8bbdda3ee8ca9bec1190724c390e45a1ee7695e7edfd2a8f7dda2c104ec5f7ac5068c00648504c7e5a +"ip@npm:^1.1.8": + version: 1.1.8 + resolution: "ip@npm:1.1.8" + checksum: a2ade53eb339fb0cbe9e69a44caab10d6e3784662285eb5d2677117ee4facc33a64679051c35e0dfdb1a3983a51ce2f5d2cb36446d52e10d01881789b76e28fb languageName: node linkType: hard @@ -7222,13 +7226,6 @@ __metadata: languageName: node linkType: hard -"isarray@npm:0.0.1": - version: 0.0.1 - resolution: "isarray@npm:0.0.1" - checksum: 49191f1425681df4a18c2f0f93db3adb85573bcdd6a4482539d98eac9e705d8961317b01175627e860516a2fc45f8f9302db26e5a380a97a520e272e2a40a8d4 - languageName: node - linkType: hard - "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -7557,7 +7554,7 @@ __metadata: jest-environment-node: 25.1.0 - 29 jest-get-type: 25.1.0 - 29 jest-matcher-utils: 25.1.0 - 29 - mockttp: ^3.7.5 + mockttp: ^3.9.2 semver: ^7.5.4 tmp: ^0.2.1 typescript: ^4.9.5 @@ -8034,16 +8031,6 @@ __metadata: languageName: node linkType: hard -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -8579,9 +8566,9 @@ __metadata: languageName: node linkType: hard -"mockttp@npm:^3.7.5": - version: 3.7.5 - resolution: "mockttp@npm:3.7.5" +"mockttp@npm:^3.9.2": + version: 3.9.2 + resolution: "mockttp@npm:3.9.2" dependencies: "@graphql-tools/schema": ^8.5.0 "@graphql-tools/utils": ^8.8.0 @@ -8612,19 +8599,19 @@ __metadata: lru-cache: ^7.14.0 native-duplexpair: ^1.0.0 node-forge: ^1.2.1 - pac-proxy-agent: ^5.0.0 + pac-proxy-agent: ^7.0.0 parse-multipart-data: ^1.4.0 performance-now: ^2.1.0 portfinder: 1.0.28 read-tls-client-hello: ^1.0.0 - semver: ^5.7.1 + semver: ^7.5.3 socks-proxy-agent: ^7.0.0 typed-error: ^3.0.2 uuid: ^8.3.2 ws: ^8.8.0 bin: mockttp: dist/admin/admin-bin.js - checksum: 0fe524add6bf879385584db3e98c9b3d6e16d7fc8ae175da23b2236ee61f0674f623099fa06c4cf5bd0008955445c34cb9520e639dfdcbbcf549b633445b56f9 + checksum: aa11f01ef7765b96a8ad135f97eddd72e548e626bab4c9fcef7bf52633b1f49e5e4cd2f763356d4ae1ea8bb7f5f4d52110681e46913fc5800b0713a99c273316 languageName: node linkType: hard @@ -8928,20 +8915,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - "optionator@npm:^0.9.1": version: 0.9.1 resolution: "optionator@npm:0.9.1" @@ -9024,31 +8997,30 @@ __metadata: languageName: node linkType: hard -"pac-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "pac-proxy-agent@npm:5.0.0" +"pac-proxy-agent@npm:^7.0.0": + version: 7.0.1 + resolution: "pac-proxy-agent@npm:7.0.1" dependencies: - "@tootallnate/once": 1 - agent-base: 6 - debug: 4 - get-uri: 3 - http-proxy-agent: ^4.0.1 - https-proxy-agent: 5 - pac-resolver: ^5.0.0 - raw-body: ^2.2.0 - socks-proxy-agent: 5 - checksum: cfd26a0e2ebfea4ca6162465018ce093bf147d26cf6c8fb3e7155bc7c184370d80d4d09a1c097e3db7676d0e3f574ea1cb56a4aa7d1d2e5cca6238935fabf010 + "@tootallnate/quickjs-emscripten": ^0.23.0 + agent-base: ^7.0.2 + debug: ^4.3.4 + get-uri: ^6.0.1 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.2 + pac-resolver: ^7.0.0 + socks-proxy-agent: ^8.0.2 + checksum: 3d4aa48ec1c19db10158ecc1c4c9a9f77792294412d225ceb3dfa45d5a06950dca9755e2db0d9b69f12769119bea0adf2b24390d9c73c8d81df75e28245ae451 languageName: node linkType: hard -"pac-resolver@npm:^5.0.0": - version: 5.0.1 - resolution: "pac-resolver@npm:5.0.1" +"pac-resolver@npm:^7.0.0": + version: 7.0.0 + resolution: "pac-resolver@npm:7.0.0" dependencies: - degenerator: ^3.0.2 - ip: ^1.1.5 + degenerator: ^5.0.0 + ip: ^1.1.8 netmask: ^2.0.2 - checksum: e3bd8aada70d173cd4cec1ac810fb56161678b7a597060a740c4a31d9c5f8cd95687b2d0fd90b69c0cafe5ef787404074f38042ba08c8d378fed48973f58e493 + checksum: fa3a898c09848e93e35f5e23443fea36ddb393a851c76a23664a5bf3fcbe58ff77a0bcdae1e4f01b9ea87ea493c52e14d97a0fe39f92474d14cd45559c6e3cde languageName: node linkType: hard @@ -9229,13 +9201,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - "prettier@npm:^2.5.1": version: 2.5.1 resolution: "prettier@npm:2.5.1" @@ -9412,7 +9377,7 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.5.2, raw-body@npm:^2.2.0, raw-body@npm:^2.4.1": +"raw-body@npm:2.5.2, raw-body@npm:^2.4.1": version: 2.5.2 resolution: "raw-body@npm:2.5.2" dependencies: @@ -9461,18 +9426,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:1.1.x": - version: 1.1.14 - resolution: "readable-stream@npm:1.1.14" - dependencies: - core-util-is: ~1.0.0 - inherits: ~2.0.1 - isarray: 0.0.1 - string_decoder: ~0.10.x - checksum: 17dfeae3e909945a4a1abc5613ea92d03269ef54c49288599507fc98ff4615988a1c39a999dcf9aacba70233d9b7040bc11a5f2bfc947e262dedcc0a8b32b5a0 - languageName: node - linkType: hard - "readable-stream@npm:^2.0.0, readable-stream@npm:^2.3.3": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" @@ -9858,7 +9811,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^5.7.0, semver@npm:^5.7.1": +"semver@npm:^5.7.0": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -10045,17 +9998,6 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:5": - version: 5.0.1 - resolution: "socks-proxy-agent@npm:5.0.1" - dependencies: - agent-base: ^6.0.2 - debug: 4 - socks: ^2.3.3 - checksum: 1b60c4977b2fef783f0fc4dc619cd2758aafdb43f3cf679f1e3627cb6c6e752811cee5513ebb4157ad26786033d2f85029440f197d321e8293b38cc5aab01e06 - languageName: node - linkType: hard - "socks-proxy-agent@npm:^6.1.1": version: 6.1.1 resolution: "socks-proxy-agent@npm:6.1.1" @@ -10078,7 +10020,18 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.3.3, socks@npm:^2.6.1, socks@npm:^2.6.2": +"socks-proxy-agent@npm:^8.0.2": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" + dependencies: + agent-base: ^7.0.2 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d + languageName: node + linkType: hard + +"socks@npm:^2.6.1, socks@npm:^2.6.2, socks@npm:^2.7.1": version: 2.7.1 resolution: "socks@npm:2.7.1" dependencies: @@ -10277,13 +10230,6 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:~0.10.x": - version: 0.10.31 - resolution: "string_decoder@npm:0.10.31" - checksum: fe00f8e303647e5db919948ccb5ce0da7dea209ab54702894dd0c664edd98e5d4df4b80d6fabf7b9e92b237359d21136c95bf068b2f7760b772ca974ba970202 - languageName: node - linkType: hard - "string_decoder@npm:~1.1.1": version: 1.1.1 resolution: "string_decoder@npm:1.1.1" @@ -10750,15 +10696,6 @@ __metadata: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - "type-detect@npm:4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" @@ -10853,7 +10790,7 @@ __metadata: debug: ^4.3.3 deep-equal: ^2.0.5 expect: 25.1.0 - 29 - mockttp: ^3.7.5 + mockttp: ^3.9.2 rimraf: ^5.0.1 rollup: ^3.21.1 rollup-plugin-dts: ^5.3.0 @@ -11029,18 +10966,6 @@ __metadata: languageName: node linkType: hard -"vm2@npm:^3.9.17": - version: 3.9.19 - resolution: "vm2@npm:3.9.19" - dependencies: - acorn: ^8.7.0 - acorn-walk: ^8.2.0 - bin: - vm2: bin/vm2 - checksum: fc6cf553134145cd7bb5246985bf242b056e3fb5ea71e2eef6710b2a5d6c6119cc6bc960435ff62480ee82efb43369be8f4db07b6690916ae7d3b2e714f395d8 - languageName: node - linkType: hard - "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -11216,7 +11141,7 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f @@ -11306,13 +11231,6 @@ __metadata: languageName: node linkType: hard -"xregexp@npm:2.0.0": - version: 2.0.0 - resolution: "xregexp@npm:2.0.0" - checksum: de62d1f01c9f1a67c80cafe48a3dc081b324249a0e88e65dc9acae9cce6d8e63c9d91c0f97e2ad2d8c5351c856c139c04dc55ebd941e59b7d1d5c1169e164cff - languageName: node - linkType: hard - "xtend@npm:^4.0.0": version: 4.0.2 resolution: "xtend@npm:4.0.2" From 302ad84f1218979d1bb83bec912e3536da543e7d Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 18:54:37 -0700 Subject: [PATCH 05/24] Bump mkdirp to 0.5.6 This bumps minimist to 0.2.8, which addresses CVE-2021-44906. --- yarn.lock | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index d4d21d6..3e166cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8394,13 +8394,6 @@ __metadata: languageName: node linkType: hard -"minimist@npm:0.0.8": - version: 0.0.8 - resolution: "minimist@npm:0.0.8" - checksum: 042f8b626b1fa44dffc23bac55771425ac4ee9d267b56f9064c07713e516e1799f3ba933bb628d2475a210caf7dcdb98161611baa1f0daf49309a944cb4bc48f - languageName: node - linkType: hard - "minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -8485,18 +8478,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:0.5.1": - version: 0.5.1 - resolution: "mkdirp@npm:0.5.1" - dependencies: - minimist: 0.0.8 - bin: - mkdirp: bin/cmd.js - checksum: ed1ab49bb1d06c88dba7cfe930a3186f2605b5465aab7c8f24119baaba6e38f9ab4ac1695c68f476c65a48df2a69a8495049cd6e26c360ea082151a0771343d2 - languageName: node - linkType: hard - -"mkdirp@npm:^0.5.5": +"mkdirp@npm:0.5.1, mkdirp@npm:^0.5.5": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: From 677aac1149f468b1908389b9f393f8bf4d73c9bf Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 19:00:31 -0700 Subject: [PATCH 06/24] Bump yargs-unparser to 1.6.4 This bumps the transitive dependency `flat` to 5.0.2, which addresses CVE-2020-36632. --- yarn.lock | 63 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3e166cd..ecbf89a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6027,14 +6027,12 @@ __metadata: languageName: node linkType: hard -"flat@npm:^4.1.0": - version: 4.1.1 - resolution: "flat@npm:4.1.1" - dependencies: - is-buffer: ~2.0.3 +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" bin: flat: cli.js - checksum: 398be12185eb0f3c59797c3670a8c35d07020b673363175676afbaf53d6b213660e060488554cf82c25504986e1a6059bdbcc5d562e87ca3e972e8a33148e3ae + checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d languageName: node linkType: hard @@ -6945,13 +6943,6 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:~2.0.3": - version: 2.0.5 - resolution: "is-buffer@npm:2.0.5" - checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 - languageName: node - linkType: hard - "is-builtin-module@npm:^3.2.1": version: 3.2.1 resolution: "is-builtin-module@npm:3.2.1" @@ -7104,6 +7095,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^1.1.0": + version: 1.1.0 + resolution: "is-plain-obj@npm:1.1.0" + checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 + languageName: node + linkType: hard + "is-reference@npm:1.2.1": version: 1.2.1 resolution: "is-reference@npm:1.2.1" @@ -8122,7 +8120,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.16.4, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.21": +"lodash@npm:^4.16.4, lodash@npm:^4.17.14, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -11265,7 +11263,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^13.1.1, yargs-parser@npm:^13.1.2": +"yargs-parser@npm:^13.1.1": version: 13.1.2 resolution: "yargs-parser@npm:13.1.2" dependencies: @@ -11275,6 +11273,16 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^15.0.1": + version: 15.0.3 + resolution: "yargs-parser@npm:15.0.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 06611c1893fa9f1c25ae79df3c6e2edbac7c8d75257a4b55b8432cbc87ee03eda86bea0537f65b4b8a0d9684c83fa6e9ef61ef720a1e5cc8a9aa6893b54ee4c3 + languageName: node + linkType: hard + "yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" @@ -11283,13 +11291,15 @@ __metadata: linkType: hard "yargs-unparser@npm:1.6.0": - version: 1.6.0 - resolution: "yargs-unparser@npm:1.6.0" + version: 1.6.4 + resolution: "yargs-unparser@npm:1.6.4" dependencies: - flat: ^4.1.0 - lodash: ^4.17.15 - yargs: ^13.3.0 - checksum: ca662bb94af53d816d47f2162f0a1d135783f09de9fd47645a5cb18dd25532b0b710432b680d2c065ff45de122ba4a96433c41595fa7bfcc08eb12e889db95c1 + camelcase: ^5.3.1 + decamelize: ^1.2.0 + flat: ^5.0.2 + is-plain-obj: ^1.1.0 + yargs: ^14.2.3 + checksum: 428695924f6dc3b660cab37e5f1bb46a7bc64bb81e583beaaf40155f2d33440e3776518528e98902d256ed68fe4cc74c54c0188481ce8dba6857bc1656b5ca06 languageName: node linkType: hard @@ -11311,11 +11321,12 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^13.3.0": - version: 13.3.2 - resolution: "yargs@npm:13.3.2" +"yargs@npm:^14.2.3": + version: 14.2.3 + resolution: "yargs@npm:14.2.3" dependencies: cliui: ^5.0.0 + decamelize: ^1.2.0 find-up: ^3.0.0 get-caller-file: ^2.0.1 require-directory: ^2.1.1 @@ -11324,8 +11335,8 @@ __metadata: string-width: ^3.0.0 which-module: ^2.0.0 y18n: ^4.0.0 - yargs-parser: ^13.1.2 - checksum: 75c13e837eb2bb25717957ba58d277e864efc0cca7f945c98bdf6477e6ec2f9be6afa9ed8a876b251a21423500c148d7b91e88dee7adea6029bdec97af1ef3e8 + yargs-parser: ^15.0.1 + checksum: 684fcb1896e6c873c31c09c5c16445d6253dfe505aa879cff56d49425f5bca44f2ab8d7a1c949f3b932ae8654128425e89770e5e2f2c3d816e5816b9eb6efb6f languageName: node linkType: hard From 6effd5358cd893bd59699227851f71422a0f7812 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 19:07:20 -0700 Subject: [PATCH 07/24] Bump word-wrap to 1.2.5 This addresses CVE-2023-26115. --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ecbf89a..421962b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11122,9 +11122,9 @@ __metadata: linkType: hard "word-wrap@npm:^1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb languageName: node linkType: hard From 17064fc2c9c626ee00b371f4bdb3b54a4b45cc4b Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 19:04:08 -0700 Subject: [PATCH 08/24] Bump minimatch to 3.0.8 This addresses CVE-2022-3517. --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 421962b..d9ca68b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8357,11 +8357,11 @@ __metadata: linkType: hard "minimatch@npm:3.0.4": - version: 3.0.4 - resolution: "minimatch@npm:3.0.4" + version: 3.0.8 + resolution: "minimatch@npm:3.0.8" dependencies: brace-expansion: ^1.1.7 - checksum: 66ac295f8a7b59788000ea3749938b0970344c841750abd96694f80269b926ebcafad3deeb3f1da2522978b119e6ae3a5869b63b13a7859a456b3408bd18a078 + checksum: 850cca179cad715133132693e6963b0db64ab0988c4d211415b087fc23a3e46321e2c5376a01bf5623d8782aba8bdf43c571e2e902e51fdce7175c7215c29f8b languageName: node linkType: hard From 3e444c17b860117ae6a259a61fd5c3539d7b5cfa Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 19:10:05 -0700 Subject: [PATCH 09/24] Bump semver to 5.7.2 This addresses CVE-2022-25883. --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index d9ca68b..ce5c3d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9792,11 +9792,11 @@ __metadata: linkType: hard "semver@npm:^5.7.0": - version: 5.7.1 - resolution: "semver@npm:5.7.1" + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard From 16186702ab57252521c78f5340b937d4b9ec5ddb Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 19:13:12 -0700 Subject: [PATCH 10/24] Bump @cypress/request to 2.88.12 This bumps the transitive dependency `tough-cookie` to 4.1.3, which addresses CVE-2023-26136. --- yarn.lock | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index ce5c3d8..3d57717 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1408,8 +1408,8 @@ __metadata: linkType: hard "@cypress/request@npm:^2.88.10": - version: 2.88.11 - resolution: "@cypress/request@npm:2.88.11" + version: 2.88.12 + resolution: "@cypress/request@npm:2.88.12" dependencies: aws-sign2: ~0.7.0 aws4: ^1.8.0 @@ -1426,10 +1426,10 @@ __metadata: performance-now: ^2.1.0 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 - checksum: e4b3f62e0c41c4ccca6c942828461d8ea717e752fd918d685e9f74e2ebcfa8b7942427f7ce971e502635c3bf3d40011476db84dc753d3dc360c6d08350da6f93 + checksum: 2c6fbf7f3127d41bffca8374beaa8cf95450495a8a077b00309ea9d94dd2a4da450a77fe038e8ad26c97cdd7c39b65c53c850f8338ce9bc2dbe23ce2e2b48329 languageName: node linkType: hard @@ -9266,7 +9266,7 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28": +"psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d @@ -9315,6 +9315,13 @@ __metadata: languageName: node linkType: hard +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -9532,6 +9539,13 @@ __metadata: languageName: node linkType: hard +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + "resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" @@ -10502,13 +10516,15 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:~2.5.0": - version: 2.5.0 - resolution: "tough-cookie@npm:2.5.0" +"tough-cookie@npm:^4.1.3": + version: 4.1.3 + resolution: "tough-cookie@npm:4.1.3" dependencies: - psl: ^1.1.28 + psl: ^1.1.33 punycode: ^2.1.1 - checksum: 16a8cd090224dd176eee23837cbe7573ca0fa297d7e468ab5e1c02d49a4e9a97bb05fef11320605eac516f91d54c57838a25864e8680e27b069a5231d8264977 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc languageName: node linkType: hard @@ -10836,6 +10852,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" @@ -10880,6 +10903,16 @@ __metadata: languageName: node linkType: hard +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" From 752980a556995bb0ee24b260896c2da11cc169d7 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Sun, 10 Sep 2023 19:15:22 -0700 Subject: [PATCH 11/24] Bump yargs-parser to 13.1.2 This addresses CVE-2020-7608. --- yarn.lock | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3d57717..7398f4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11286,17 +11286,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:13.1.1": - version: 13.1.1 - resolution: "yargs-parser@npm:13.1.1" - dependencies: - camelcase: ^5.0.0 - decamelize: ^1.2.0 - checksum: fa5fd27736aa423dc9a114d160dae94625f7faf19c252b8c91ac0197be9715d1dbc9b98fda893f75f182111fb6c3c0ce60c631b73859dd1a06bec07cddfb98f4 - languageName: node - linkType: hard - -"yargs-parser@npm:^13.1.1": +"yargs-parser@npm:13.1.1, yargs-parser@npm:^13.1.1": version: 13.1.2 resolution: "yargs-parser@npm:13.1.2" dependencies: From 15c870a94fcacc8390af70de38951c37f8253b13 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Tue, 12 Sep 2023 13:51:01 -0700 Subject: [PATCH 12/24] [cypress] Support Cypress 13.2 --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7b043e5..7a0c862 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -129,6 +129,7 @@ jobs: - "12.17" - "13.0" - "13.1" + - "13.2" steps: - uses: actions/checkout@v4 @@ -236,6 +237,7 @@ jobs: - "12.17" - "13.0" - "13.1" + - "13.2" steps: - uses: actions/checkout@v4 From 285b34e605681d8b18dbf891391cf39c872de0a3 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Tue, 12 Sep 2023 13:54:24 -0700 Subject: [PATCH 13/24] [jest] Support Jest 29.7 --- .github/workflows/ci.yaml | 2 ++ scripts/set-jest-version.ts | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7a0c862..7ccacca 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -332,6 +332,7 @@ jobs: - 18 - 20 jest: + - "29.7" - "29.6" - "29.5" - "29.4" @@ -448,6 +449,7 @@ jobs: - 18 - 20 jest: + - "29.7" - "29.6" - "29.5" - "29.4" diff --git a/scripts/set-jest-version.ts b/scripts/set-jest-version.ts index b12f92b..805403d 100644 --- a/scripts/set-jest-version.ts +++ b/scripts/set-jest-version.ts @@ -77,6 +77,7 @@ const PACKAGE_VERSION_MAP = { "25 - 27": null, "29.0 - 29.3": "~29.0", "29.4 - 29.5": "~29.4", + "29.6 - 29.7": "~29.6", }, "@jest/source-map": { "25.2 - 25.4": "~25.2", @@ -86,6 +87,7 @@ const PACKAGE_VERSION_MAP = { "29.0 - 29.1": "~29.0", "29.2 - 29.3": "~29.2", "29.4 - 29.5": "~29.4", + "29.6 - 29.7": "~29.6", }, "@jest/test-result": { "26.3 - 26.4": "~26.3", @@ -96,6 +98,7 @@ const PACKAGE_VERSION_MAP = { "@jest/types": { "26.3 - 26.4": "~26.3", "27.2 - 27.3": "~27.2", + "29.6 - 29.7": "~29.6", }, "babel-jest": { "26.3 - 26.4": "~26.3", @@ -107,7 +110,7 @@ const PACKAGE_VERSION_MAP = { "27.2 - 27.3": "~27.2", "29.0 - 29.1": "~29.0", "29.2 - 29.3": "~29.2", - "29.5 - 29.6": "~29.5", + "29.6 - 29.7": "~29.6", }, "babel-preset-jest": { "26.3 - 26.4": "~26.3", @@ -115,7 +118,7 @@ const PACKAGE_VERSION_MAP = { "27.2 - 27.3": "~27.2", "29.0 - 29.1": "~29.0", "29.2 - 29.3": "~29.2", - "29.5 - 29.6": "~29.5", + "29.6 - 29.7": "~29.6", }, "jest-changed-files": { "26.3 - 26.4": "~26.3", @@ -145,7 +148,8 @@ const PACKAGE_VERSION_MAP = { "^28": "~28.0", "29.0 - 29.1": "~29.0", "29.2 - 29.3": "~29.2", - "29.4 - 29.6": "~29.4", + "29.4 - 29.5": "~29.4", + "29.6 - 29.7": "~29.6", }, "jest-haste-map": { "26.3 - 26.4": "~26.3", @@ -163,7 +167,8 @@ const PACKAGE_VERSION_MAP = { "^28": "~28.0", "29.0 - 29.1": "~29.0", "29.2 - 29.3": "~29.2", - "29.4 - 29.6": "~29.4", + "29.4 - 29.5": "~29.4", + "29.6 - 29.7": "~29.6", }, "jest-serializer": { "25.2 - 25.4": "~25.2", From 48613d1e777782079472913e7bab6faeec97f3f5 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Thu, 21 Sep 2023 19:37:12 -0700 Subject: [PATCH 14/24] Limit CI to 56 concurrent jobs Currently, a single run of this repository's CI pipeline will exhaust all 60 available concurrent GitHub Actions runners for our GitHub Team subscription. This makes it difficult to run CI for other repositories. --- .github/workflows/ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7ccacca..007a034 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -110,6 +110,7 @@ jobs: if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || needs.check.outputs.affects_cypress == 'true' strategy: fail-fast: false + max-parallel: 16 matrix: node: - 16 @@ -218,6 +219,7 @@ jobs: if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || needs.check.outputs.affects_cypress == 'true' strategy: fail-fast: false + max-parallel: 16 matrix: node: - 16 @@ -326,6 +328,7 @@ jobs: if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || needs.check.outputs.affects_jest == 'true' strategy: fail-fast: false + max-parallel: 12 matrix: node: - 16 @@ -443,6 +446,7 @@ jobs: if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || needs.check.outputs.affects_jest == 'true' strategy: fail-fast: false + max-parallel: 12 matrix: node: - 16 From ced36a8f54c20248b311ea3737c5ec062b2a7315 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Thu, 21 Sep 2023 22:36:54 -0700 Subject: [PATCH 15/24] [cypress] Avoid clobbering conflicting event handlers This works around https://github.com/cypress-io/cypress/issues/22428. --- packages/cypress-plugin/cypress-on-fix.d.ts | 8 ++++++++ packages/cypress-plugin/package.json | 1 + packages/cypress-plugin/src/index.ts | 8 +++++++- packages/cypress-plugin/src/tsconfig.json | 2 +- .../test/integration-input-manual/cypress-config.mjs | 11 +++++++---- .../test/integration-input-manual/cypress.config.js | 11 +++++++---- .../test/integration-input-manual/package.json | 1 + packages/cypress-plugin/tsconfig.json | 2 +- yarn.lock | 9 +++++++++ 9 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 packages/cypress-plugin/cypress-on-fix.d.ts diff --git a/packages/cypress-plugin/cypress-on-fix.d.ts b/packages/cypress-plugin/cypress-on-fix.d.ts new file mode 100644 index 0000000..abce4b3 --- /dev/null +++ b/packages/cypress-plugin/cypress-on-fix.d.ts @@ -0,0 +1,8 @@ +// Copyright (c) 2023 Developer Innovations, LLC + +declare module "cypress-on-fix" { + import * as Cypress from "cypress"; + export default function onProxy( + on: Cypress.PluginEvents + ): Cypress.PluginEvents; +} diff --git a/packages/cypress-plugin/package.json b/packages/cypress-plugin/package.json index 604db86..0cd0dc7 100644 --- a/packages/cypress-plugin/package.json +++ b/packages/cypress-plugin/package.json @@ -52,6 +52,7 @@ "cli-table3": "0.5.1", "cosmiconfig": "^7.0.1", "cypress-multi-reporters": "^1.6.3", + "cypress-on-fix": "^1.0.2", "dayjs": "^1.10.4", "debug": "^4.3.3", "deep-equal": "^2.0.5", diff --git a/packages/cypress-plugin/src/index.ts b/packages/cypress-plugin/src/index.ts index 90b54e5..fb65ae9 100644 --- a/packages/cypress-plugin/src/index.ts +++ b/packages/cypress-plugin/src/index.ts @@ -19,6 +19,7 @@ import { ENV_VAR_AUTO_SUPPORT, ENV_VAR_UNFLAKABLE_RESOLVED_CONFIG_JSON, } from "./config-env-vars"; +import cypressOnFix from "cypress-on-fix"; export { PluginOptions }; @@ -100,9 +101,14 @@ const wrapSetupNodeEvents = | undefined ) => async ( - on: Cypress.PluginEvents, + baseOn: Cypress.PluginEvents, config: Cypress.PluginConfigOptions ): Promise => { + // Due to https://github.com/cypress-io/cypress/issues/22428, only the last event handler + // registered for each event type will be called. This means we'll clobber any event handlers + // the user registers. To avoid this, we use cypress-on-fix. + const on = cypressOnFix(baseOn); + const userModifiedConfig = userSetupNodeEvents !== undefined ? await userSetupNodeEvents(on, config) diff --git a/packages/cypress-plugin/src/tsconfig.json b/packages/cypress-plugin/src/tsconfig.json index 44badea..80d8585 100644 --- a/packages/cypress-plugin/src/tsconfig.json +++ b/packages/cypress-plugin/src/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "../tsconfig.json", - "include": ["../mocha.d.ts", ".", ".eslintrc.js"] + "include": ["../cypress-on-fix.d.ts", "../mocha.d.ts", ".", ".eslintrc.js"] } diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs b/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs index 952022a..d5d5a61 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs +++ b/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs @@ -8,6 +8,7 @@ import { registerCosmiconfigMock } from "unflakable-test-common/dist/config.js"; import { registerUnflakable } from "@unflakable/cypress-plugin"; import semverGte from "semver/functions/gte.js"; import path from "path"; +import cypressOnFix from "cypress-on-fix"; /** * @type {Cypress.ConfigOptions} @@ -15,11 +16,12 @@ import path from "path"; export default { component: { /** - * @param {Cypress.PluginEvents} on + * @param {Cypress.PluginEvents} baseOn * @param {Cypress.PluginConfigOptions} config * @returns {Promise | Cypress.PluginConfigOptions | void} */ - setupNodeEvents(on, config) { + setupNodeEvents(baseOn, config) { + const on = cypressOnFix(baseOn); registerCosmiconfigMock(); registerSimpleGitMock(); tasks.registerTasks(on); @@ -35,11 +37,12 @@ export default { }, e2e: { /** - * @param {Cypress.PluginEvents} on + * @param {Cypress.PluginEvents} baseOn * @param {Cypress.PluginConfigOptions} config * @returns {Promise | Cypress.PluginConfigOptions | void} */ - setupNodeEvents(on, config) { + setupNodeEvents(baseOn, config) { + const on = cypressOnFix(baseOn); registerCosmiconfigMock(); registerSimpleGitMock(); tasks.registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress.config.js b/packages/cypress-plugin/test/integration-input-manual/cypress.config.js index 9e0a4e8..376bd1f 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress.config.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress.config.js @@ -11,6 +11,7 @@ const semverGte = require("semver/functions/gte"); const { registerUnflakable } = require("@unflakable/cypress-plugin"); const path = require("path"); +const cypressOnFix = require("cypress-on-fix"); module.exports = { /** @@ -18,11 +19,12 @@ module.exports = { */ component: { /** - * @param {Cypress.PluginEvents} on + * @param {Cypress.PluginEvents} baseOn * @param {Cypress.PluginConfigOptions} config * @returns {Promise | Cypress.PluginConfigOptions | void} */ - setupNodeEvents(on, config) { + setupNodeEvents(baseOn, config) { + const on = cypressOnFix(baseOn); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); @@ -38,11 +40,12 @@ module.exports = { }, e2e: { /** - * @param {Cypress.PluginEvents} on + * @param {Cypress.PluginEvents} baseOn * @param {Cypress.PluginConfigOptions} config * @returns {Promise | Cypress.PluginConfigOptions | void} */ - setupNodeEvents(on, config) { + setupNodeEvents(baseOn, config) { + const on = cypressOnFix(baseOn); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input-manual/package.json b/packages/cypress-plugin/test/integration-input-manual/package.json index 49515a8..c67d68d 100644 --- a/packages/cypress-plugin/test/integration-input-manual/package.json +++ b/packages/cypress-plugin/test/integration-input-manual/package.json @@ -11,6 +11,7 @@ "@unflakable/cypress-plugin": "workspace:^", "cypress": "11.2 - 13", "cypress-multi-reporters": "^1.6.3", + "cypress-on-fix": "^1.0.2", "mocha": "=7.0.1", "mocha-junit-reporter": "^2.2.0", "process": "^0.11.10", diff --git a/packages/cypress-plugin/tsconfig.json b/packages/cypress-plugin/tsconfig.json index 9e9a7c8..786cbe3 100644 --- a/packages/cypress-plugin/tsconfig.json +++ b/packages/cypress-plugin/tsconfig.json @@ -15,5 +15,5 @@ // Avoids conflicting global definitions from, e.g., jest. "types": ["node"] }, - "include": ["mocha.d.ts", "rollup.config.mjs"] + "include": ["cypress-on-fix.d.ts", "mocha.d.ts", "rollup.config.mjs"] } diff --git a/yarn.lock b/yarn.lock index 7398f4c..5eb8cd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3218,6 +3218,7 @@ __metadata: cross-env: ^7.0.3 cypress: 11.2 - 13 cypress-multi-reporters: ^1.6.3 + cypress-on-fix: ^1.0.2 dayjs: ^1.10.4 debug: ^4.3.3 deep-equal: ^2.0.5 @@ -4789,6 +4790,7 @@ __metadata: "@unflakable/cypress-plugin": "workspace:^" cypress: 11.2 - 13 cypress-multi-reporters: ^1.6.3 + cypress-on-fix: ^1.0.2 mocha: =7.0.1 mocha-junit-reporter: ^2.2.0 process: ^0.11.10 @@ -4856,6 +4858,13 @@ __metadata: languageName: node linkType: hard +"cypress-on-fix@npm:^1.0.2": + version: 1.0.2 + resolution: "cypress-on-fix@npm:1.0.2" + checksum: b35e0d49e4270237e7cbe95c21d458772d3df6bbb4423346c70f9417e61fdf061ad1d83aca76a854a378d001a68f50c17b8dd312fbe9c50b5d12e61fc317a785 + languageName: node + linkType: hard + "cypress@npm:11.2 - 13": version: 12.14.0 resolution: "cypress@npm:12.14.0" From 56acafcf56b934e4c159ee5a31938f9bac10c084 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Thu, 21 Sep 2023 19:00:01 -0700 Subject: [PATCH 16/24] [cypress] Work around SIGSEGV in Chrome 117 w/ headless mode The latest Chrome 117 release (now rolled out to GitHub Actions runners) broke interoperability with Cypress <= 12.14 in headless mode. See https://github.com/cypress-io/cypress/issues/27804. This change implements the workaround in https://github.com/cypress-io/cypress/issues/27804#issuecomment-1719882404, which replaces `--headless` with `--headless=new`. See also the underlying Chrome bug here: https://bugs.chromium.org/p/chromium/issues/detail?id=1483163 --- .../config-js/headless.js | 31 +++++++++++++++++ .../integration-input-esm/config/headless.ts | 24 ++++++++++++++ .../integration-input-esm/cypress-config.cjs | 6 ++++ .../integration-input-esm/cypress-config.js | 3 ++ .../integration-input-esm/cypress.config.ts | 3 ++ .../config/headless.js | 33 +++++++++++++++++++ .../cypress-config.mjs | 3 ++ .../cypress.config.js | 3 ++ .../integration-input/config-js/headless.js | 33 +++++++++++++++++++ .../test/integration-input/config/headless.ts | 24 ++++++++++++++ .../test/integration-input/cypress-config.js | 3 ++ .../test/integration-input/cypress-config.mjs | 3 ++ .../test/integration-input/cypress.config.ts | 14 +++++++- .../test/integration-input/tsconfig.json | 1 + 14 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 packages/cypress-plugin/test/integration-input-esm/config-js/headless.js create mode 100644 packages/cypress-plugin/test/integration-input-esm/config/headless.ts create mode 100644 packages/cypress-plugin/test/integration-input-manual/config/headless.js create mode 100644 packages/cypress-plugin/test/integration-input/config-js/headless.js create mode 100644 packages/cypress-plugin/test/integration-input/config/headless.ts diff --git a/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js b/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js new file mode 100644 index 0000000..093bf8c --- /dev/null +++ b/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js @@ -0,0 +1,31 @@ +// Copyright (c) 2023 Developer Innovations, LLC + +/** + * Workaround for https://github.com/cypress-io/cypress/issues/27804. + * + * @param {Cypress.PluginEvents} on + * @returns void + */ +export const fixHeadlessChrome = (on) => { + on( + "before:browser:launch", + /** + * @param {Cypress.Browser} browser, + * @param {Cypress.BrowserLaunchOptions} launchOptions + * @returns {void | Cypress.BrowserLaunchOptions} + */ + (browser, launchOptions) => { + if ( + browser.family === "chromium" && + browser.name !== "electron" && + browser.isHeadless + ) { + launchOptions.args = launchOptions.args.map((arg) => + arg === "--headless" ? "--headless=new" : arg + ); + } + + return launchOptions; + } + ); +}; diff --git a/packages/cypress-plugin/test/integration-input-esm/config/headless.ts b/packages/cypress-plugin/test/integration-input-esm/config/headless.ts new file mode 100644 index 0000000..05519ff --- /dev/null +++ b/packages/cypress-plugin/test/integration-input-esm/config/headless.ts @@ -0,0 +1,24 @@ +// Copyright (c) 2023 Developer Innovations, LLC + +// Workaround for https://github.com/cypress-io/cypress/issues/27804. +export const fixHeadlessChrome = (on: Cypress.PluginEvents): void => { + on( + "before:browser:launch", + ( + browser: Cypress.Browser, + launchOptions: Cypress.BrowserLaunchOptions + ): void | Cypress.BrowserLaunchOptions => { + if ( + browser.family === "chromium" && + browser.name !== "electron" && + browser.isHeadless + ) { + launchOptions.args = launchOptions.args.map((arg) => + arg === "--headless" ? "--headless=new" : arg + ); + } + + return launchOptions; + } + ); +}; diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs b/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs index cb9736e..ecde34b 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs +++ b/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs @@ -17,6 +17,9 @@ module.exports = { * @returns {Promise | Cypress.PluginConfigOptions | void} */ async setupNodeEvents(on, _config) { + const { fixHeadlessChrome } = await import("./config-js/headless.js"); + + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); @@ -38,6 +41,9 @@ module.exports = { * @returns {Promise | Cypress.PluginConfigOptions | void} */ async setupNodeEvents(on, _config) { + const { fixHeadlessChrome } = await import("./config-js/headless.js"); + + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress-config.js b/packages/cypress-plugin/test/integration-input-esm/cypress-config.js index ee5d049..c203809 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress-config.js +++ b/packages/cypress-plugin/test/integration-input-esm/cypress-config.js @@ -5,6 +5,7 @@ import { registerTasks } from "./config-js/tasks.js"; import webpackConfig from "./config-js/webpack.js"; import { registerSimpleGitMock } from "unflakable-test-common/dist/git.js"; import { registerCosmiconfigMock } from "unflakable-test-common/dist/config.js"; +import { fixHeadlessChrome } from "./config-js/headless.js"; /** * @type {Cypress.ConfigOptions} @@ -17,6 +18,7 @@ export default { * @returns {Promise | Cypress.PluginConfigOptions | void} */ setupNodeEvents(on, _config) { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); @@ -35,6 +37,7 @@ export default { * @returns {Promise | Cypress.PluginConfigOptions | void} */ setupNodeEvents(on, _config) { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts b/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts index c7f9649..8a8ca57 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts +++ b/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts @@ -8,10 +8,12 @@ import { registerTasks } from "./config/tasks.js"; import webpackConfig from "./config/webpack.js"; import { registerSimpleGitMock } from "unflakable-test-common/dist/git.js"; import { registerCosmiconfigMock } from "unflakable-test-common/dist/config.js"; +import { fixHeadlessChrome } from "./config/headless.js"; export default defineConfig({ component: { setupNodeEvents(on: Cypress.PluginEvents, _config) { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); @@ -31,6 +33,7 @@ export default defineConfig({ | Promise | Cypress.PluginConfigOptions | void { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input-manual/config/headless.js b/packages/cypress-plugin/test/integration-input-manual/config/headless.js new file mode 100644 index 0000000..a116630 --- /dev/null +++ b/packages/cypress-plugin/test/integration-input-manual/config/headless.js @@ -0,0 +1,33 @@ +// Copyright (c) 2023 Developer Innovations, LLC + +module.exports = { + /** + * Workaround for https://github.com/cypress-io/cypress/issues/27804. + * + * @param {Cypress.PluginEvents} on + * @returns void + */ + fixHeadlessChrome: (on) => { + on( + "before:browser:launch", + /** + * @param {Cypress.Browser} browser, + * @param {Cypress.BrowserLaunchOptions} launchOptions + * @returns {void | Cypress.BrowserLaunchOptions} + */ + (browser, launchOptions) => { + if ( + browser.family === "chromium" && + browser.name !== "electron" && + browser.isHeadless + ) { + launchOptions.args = launchOptions.args.map((arg) => + arg === "--headless" ? "--headless=new" : arg + ); + } + + return launchOptions; + } + ); + }, +}; diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs b/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs index d5d5a61..1f976f6 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs +++ b/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs @@ -8,6 +8,7 @@ import { registerCosmiconfigMock } from "unflakable-test-common/dist/config.js"; import { registerUnflakable } from "@unflakable/cypress-plugin"; import semverGte from "semver/functions/gte.js"; import path from "path"; +import headless from "./config/headless.js"; import cypressOnFix from "cypress-on-fix"; /** @@ -22,6 +23,7 @@ export default { */ setupNodeEvents(baseOn, config) { const on = cypressOnFix(baseOn); + headless.fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); tasks.registerTasks(on); @@ -43,6 +45,7 @@ export default { */ setupNodeEvents(baseOn, config) { const on = cypressOnFix(baseOn); + headless.fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); tasks.registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress.config.js b/packages/cypress-plugin/test/integration-input-manual/cypress.config.js index 376bd1f..4f34373 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress.config.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress.config.js @@ -11,6 +11,7 @@ const semverGte = require("semver/functions/gte"); const { registerUnflakable } = require("@unflakable/cypress-plugin"); const path = require("path"); +const { fixHeadlessChrome } = require("./config/headless"); const cypressOnFix = require("cypress-on-fix"); module.exports = { @@ -25,6 +26,7 @@ module.exports = { */ setupNodeEvents(baseOn, config) { const on = cypressOnFix(baseOn); + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); @@ -46,6 +48,7 @@ module.exports = { */ setupNodeEvents(baseOn, config) { const on = cypressOnFix(baseOn); + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input/config-js/headless.js b/packages/cypress-plugin/test/integration-input/config-js/headless.js new file mode 100644 index 0000000..a116630 --- /dev/null +++ b/packages/cypress-plugin/test/integration-input/config-js/headless.js @@ -0,0 +1,33 @@ +// Copyright (c) 2023 Developer Innovations, LLC + +module.exports = { + /** + * Workaround for https://github.com/cypress-io/cypress/issues/27804. + * + * @param {Cypress.PluginEvents} on + * @returns void + */ + fixHeadlessChrome: (on) => { + on( + "before:browser:launch", + /** + * @param {Cypress.Browser} browser, + * @param {Cypress.BrowserLaunchOptions} launchOptions + * @returns {void | Cypress.BrowserLaunchOptions} + */ + (browser, launchOptions) => { + if ( + browser.family === "chromium" && + browser.name !== "electron" && + browser.isHeadless + ) { + launchOptions.args = launchOptions.args.map((arg) => + arg === "--headless" ? "--headless=new" : arg + ); + } + + return launchOptions; + } + ); + }, +}; diff --git a/packages/cypress-plugin/test/integration-input/config/headless.ts b/packages/cypress-plugin/test/integration-input/config/headless.ts new file mode 100644 index 0000000..05519ff --- /dev/null +++ b/packages/cypress-plugin/test/integration-input/config/headless.ts @@ -0,0 +1,24 @@ +// Copyright (c) 2023 Developer Innovations, LLC + +// Workaround for https://github.com/cypress-io/cypress/issues/27804. +export const fixHeadlessChrome = (on: Cypress.PluginEvents): void => { + on( + "before:browser:launch", + ( + browser: Cypress.Browser, + launchOptions: Cypress.BrowserLaunchOptions + ): void | Cypress.BrowserLaunchOptions => { + if ( + browser.family === "chromium" && + browser.name !== "electron" && + browser.isHeadless + ) { + launchOptions.args = launchOptions.args.map((arg) => + arg === "--headless" ? "--headless=new" : arg + ); + } + + return launchOptions; + } + ); +}; diff --git a/packages/cypress-plugin/test/integration-input/cypress-config.js b/packages/cypress-plugin/test/integration-input/cypress-config.js index 50319f0..2ffbfe6 100644 --- a/packages/cypress-plugin/test/integration-input/cypress-config.js +++ b/packages/cypress-plugin/test/integration-input/cypress-config.js @@ -7,6 +7,7 @@ const { registerSimpleGitMock } = require("unflakable-test-common/dist/git"); const { registerCosmiconfigMock, } = require("unflakable-test-common/dist/config"); +const { fixHeadlessChrome } = require("config-js/headless"); module.exports = { /** @@ -20,6 +21,7 @@ module.exports = { * @returns {Promise | Cypress.PluginConfigOptions | void} */ setupNodeEvents(on, _config) { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); @@ -38,6 +40,7 @@ module.exports = { * @returns {Promise | Cypress.PluginConfigOptions | void} */ setupNodeEvents(on, _config) { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input/cypress-config.mjs b/packages/cypress-plugin/test/integration-input/cypress-config.mjs index b6e6c0f..c5d6b38 100644 --- a/packages/cypress-plugin/test/integration-input/cypress-config.mjs +++ b/packages/cypress-plugin/test/integration-input/cypress-config.mjs @@ -5,6 +5,7 @@ import tasks from "./config-js/tasks.js"; import webpackConfig from "./config-js/webpack.js"; import { registerSimpleGitMock } from "unflakable-test-common/dist/git.js"; import { registerCosmiconfigMock } from "unflakable-test-common/dist/config.js"; +import headless from "./config-js/headless.js"; /** * @type {Cypress.ConfigOptions} @@ -17,6 +18,7 @@ export default { * @returns {Promise | Cypress.PluginConfigOptions | void} */ setupNodeEvents(on, _config) { + headless.fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); tasks.registerTasks(on); @@ -35,6 +37,7 @@ export default { * @returns {Promise | Cypress.PluginConfigOptions | void} */ setupNodeEvents(on, _config) { + headless.fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); tasks.registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input/cypress.config.ts b/packages/cypress-plugin/test/integration-input/cypress.config.ts index 1a6359b..5375c6a 100644 --- a/packages/cypress-plugin/test/integration-input/cypress.config.ts +++ b/packages/cypress-plugin/test/integration-input/cypress.config.ts @@ -12,10 +12,14 @@ import { openDevToolsOnLaunch } from "config/devtools"; import webpackConfig from "config/webpack"; // eslint-disable-next-line import/no-unresolved import { registerTasks } from "config/tasks"; +// eslint-disable-next-line import/no-unresolved +import { fixHeadlessChrome } from "config/headless"; +import cypressOnFix from "cypress-on-fix"; export default defineConfig({ component: { setupNodeEvents(on: Cypress.PluginEvents, _config) { + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); @@ -30,12 +34,20 @@ export default defineConfig({ }, e2e: { setupNodeEvents( - on: Cypress.PluginEvents, + baseOn: Cypress.PluginEvents, _config ): | Promise | Cypress.PluginConfigOptions | void { + // Due to https://github.com/cypress-io/cypress/issues/22428, only the last event handler + // registered for each event type will be called. This means we'll clobber any event handlers + // the user registers. To avoid this, we use cypress-on-fix. + // NB: Our plugin ordinarily does this for us, but we use this package to test what happens + // when the plugin is disabled. + const on = cypressOnFix(baseOn); + + fixHeadlessChrome(on); registerCosmiconfigMock(); registerSimpleGitMock(); registerTasks(on); diff --git a/packages/cypress-plugin/test/integration-input/tsconfig.json b/packages/cypress-plugin/test/integration-input/tsconfig.json index e3ff93e..e7f8717 100644 --- a/packages/cypress-plugin/test/integration-input/tsconfig.json +++ b/packages/cypress-plugin/test/integration-input/tsconfig.json @@ -11,6 +11,7 @@ "types": ["cypress", "node"] }, "include": [ + "../../cypress-on-fix.d.ts", ".eslintrc.js", "config", "config-js", From 7aa9fd19cafa12730fc2b622e544c615d6e5eee4 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Mon, 25 Sep 2023 17:40:51 -0700 Subject: [PATCH 17/24] Run CI at midnight Pacific Many Cypress Windows tests are timing out even after increasing the timeout to 2 hours, likely due to https://github.com/actions/runner-images/issues/7320. Hopefully running the tests at night during reduced load will reduce the prevalence of noisy neighbors since the GitHub Windows runners seem unable to properly isolate compute-heavy workloads. --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 007a034..bf8e32c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,8 +8,8 @@ on: # Run the pipeline daily so that we get continuous dogfooding. schedule: - # Run at 6pm UTC/10am Pacific - - cron: 0 18 * * * + # Run at 8am UTC/midnight Pacific + - cron: 0 8 * * * # Allows you to run this workflow manually from the Actions tab workflow_dispatch: {} From df0ced3d73a86a2f0bfd75d57acdf2bc59c0e3fa Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Wed, 27 Sep 2023 13:44:01 -0700 Subject: [PATCH 18/24] [cypress] Support Cypress 13.3 --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bf8e32c..0ab8e81 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -131,6 +131,7 @@ jobs: - "13.0" - "13.1" - "13.2" + - "13.3" steps: - uses: actions/checkout@v4 @@ -240,6 +241,7 @@ jobs: - "13.0" - "13.1" - "13.2" + - "13.3" steps: - uses: actions/checkout@v4 From ed1c924156eefffb3f5903ed7e80293cefa2ab2a Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Wed, 27 Sep 2023 16:31:51 -0700 Subject: [PATCH 19/24] [cypress] Increase Windows CI timeout to 3 hours Github Actions Windows runners have become abysmally slow, with individual trivial Cypress test cases often taking two minutes just to launch Edge, do nothing, and shut down. Without paying for self-hosted runners, there's not much we can do except increase the timeout further. --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0ab8e81..4bd9a3f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -213,7 +213,7 @@ jobs: name: "Cypress ${{ matrix.cypress }} Windows Node ${{ matrix.node }} Integration Tests" runs-on: windows-2019 # Cypress on Windows is slowwww... - timeout-minutes: 120 + timeout-minutes: 180 needs: # Don't incur the cost of the test matrix if the basic build fails. - check From 8cb9af1bb23c1d8981aef94e99c4410fdd0dddc8 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Mon, 30 Oct 2023 15:36:24 -0700 Subject: [PATCH 20/24] [cypress] Support Cypress 13.4 --- .github/workflows/ci.yaml | 2 + .../integration/src/hook-failures.test.ts | 53 +++++++++++-------- .../test/integration/src/verify-output.ts | 19 ++++--- 3 files changed, 47 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4bd9a3f..c30d6b8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -132,6 +132,7 @@ jobs: - "13.1" - "13.2" - "13.3" + - "13.4" steps: - uses: actions/checkout@v4 @@ -242,6 +243,7 @@ jobs: - "13.1" - "13.2" - "13.3" + - "13.4" steps: - uses: actions/checkout@v4 diff --git a/packages/cypress-plugin/test/integration/src/hook-failures.test.ts b/packages/cypress-plugin/test/integration/src/hook-failures.test.ts index 06df22f..1294218 100644 --- a/packages/cypress-plugin/test/integration/src/hook-failures.test.ts +++ b/packages/cypress-plugin/test/integration/src/hook-failures.test.ts @@ -1,6 +1,14 @@ // Copyright (c) 2023 Developer Innovations, LLC import { integrationTest, integrationTestSuite } from "./test-wrappers"; +import semverLt from "semver/functions/lt"; +import cypressPackage from "cypress/package.json"; + +// Cypress 13.4 broke the handling of multiple hook failures. Prior to that version, Cypress/Mocha +// reported both errors as failures of the first test in the suite, and then skipped all remaining +// tests. Beginning in 13.4, Cypress skips all tests in the suite and never reports either error. +// This was most likely introduced in https://github.com/cypress-io/cypress/pull/27930. +const supportMultipleHookErrors = semverLt(cypressPackage.version, "13.4.0"); integrationTestSuite((mockBackend) => { it("run should succeed when before() fails and both tests are quarantined", (done) => @@ -303,28 +311,31 @@ integrationTestSuite((mockBackend) => { done )); - it("multiple before() hook errors", (done) => - integrationTest( - { - params: { - multipleHookErrors: true, - specNameStubs: ["hook-fail"], - }, - expectedExitCode: 1, - summaryTotals: { - icon: "fail", - numFailing: 1, - numFlaky: 0, - numPassing: 0, - numPending: 0, - numQuarantined: 0, - numSkipped: 1, - numTests: 2, + (supportMultipleHookErrors ? it : it.skip)( + "multiple before() hook errors", + (done) => + integrationTest( + { + params: { + multipleHookErrors: true, + specNameStubs: ["hook-fail"], + }, + expectedExitCode: 1, + summaryTotals: { + icon: "fail", + numFailing: 1, + numFlaky: 0, + numPassing: 0, + numPending: 0, + numQuarantined: 0, + numSkipped: 1, + numTests: 2, + }, }, - }, - mockBackend, - done - )); + mockBackend, + done + ) + ); it("test and afterEach() hook errors", (done) => integrationTest( diff --git a/packages/cypress-plugin/test/integration/src/verify-output.ts b/packages/cypress-plugin/test/integration/src/verify-output.ts index 92c79c7..f8d5f0d 100644 --- a/packages/cypress-plugin/test/integration/src/verify-output.ts +++ b/packages/cypress-plugin/test/integration/src/verify-output.ts @@ -22,11 +22,18 @@ import { import { expect as expectExt } from "@jest/globals"; import escapeStringRegexp from "escape-string-regexp"; import { TestAttemptResult } from "@unflakable/js-api"; +import semverGte from "semver/functions/gte"; +import cypressPackage from "cypress/package.json"; const THROWN_ERROR = "\x1B[0m\x1B[31m Error\x1B[0m\x1B[90m"; const FAIL_SYMBOL = process.platform === "win32" ? "×" : "✖"; const PASS_SYMBOL = process.platform === "win32" ? "√" : "✓"; +// Cypress 13.4 changed the number of retries returned after a retry passes (i.e., when a test is +// flaky). See: +// https://github.com/cypress-io/cypress/blob/5a95541c3c4e48bfc67a54642abc949576fa6f05/packages/driver/patches/mocha%2B7.0.1.dev.patch +const adjustRetriesOnPass = semverGte(cypressPackage.version, "13.4.0"); + const verifySpecOutput = ( params: TestCaseParams, specOutputs: SpecOutput[], @@ -141,7 +148,7 @@ const verifySpecOutputs = ( new RegExp( // eslint-disable-next-line no-control-regex `^ {2}\x1B\\[35m {2}${PASS_SYMBOL}\x1B\\[39m\x1B\\[90m mixed: flake should be quarantined\x1B\\[0m\x1B\\[35m \\[flaky, quarantined]\x1B\\[39m\x1B\\[33m \\(attempt 2 of ${ - expectedRetries + 1 + adjustRetriesOnPass ? 2 : expectedRetries + 1 }\\)\x1B\\[0m\x1B\\[(?:33|90)m \\([0-9]+.+?\\)\x1B\\[0m$` ) ), @@ -169,7 +176,7 @@ const verifySpecOutputs = ( new RegExp( // eslint-disable-next-line no-control-regex `^ {2}\x1B\\[33m {2}${PASS_SYMBOL}\x1B\\[0m\x1B\\[90m mixed: flake should be quarantined\x1B\\[0m\x1B\\[33m \\[flaky]\x1B\\[0m\x1B\\[33m \\(attempt 2 of ${ - expectedRetries + 1 + adjustRetriesOnPass ? 2 : expectedRetries + 1 }\\)\x1B\\[0m\x1B\\[(?:33|90)m \\([0-9]+.+?\\)\x1B\\[0m$` ) ), @@ -208,7 +215,7 @@ const verifySpecOutputs = ( new RegExp( // eslint-disable-next-line no-control-regex `^ {2}\x1B\\[35m {2}${PASS_SYMBOL}\x1B\\[39m\x1B\\[90m mixed: should be flaky\x1B\\[0m\x1B\\[35m \\[flaky, quarantined]\x1B\\[39m\x1B\\[33m \\(attempt 2 of ${ - expectedRetries + 1 + adjustRetriesOnPass ? 2 : expectedRetries + 1 }\\)\x1B\\[0m\x1B\\[(?:33|90)m \\([0-9]+.+?\\)\x1B\\[0m$` ) ) @@ -216,7 +223,7 @@ const verifySpecOutputs = ( new RegExp( // eslint-disable-next-line no-control-regex `^ {2}\x1B\\[33m {2}${PASS_SYMBOL}\x1B\\[0m\x1B\\[90m mixed: should be flaky\x1B\\[0m\x1B\\[33m \\[flaky]\x1B\\[0m\x1B\\[33m \\(attempt 2 of ${ - expectedRetries + 1 + adjustRetriesOnPass ? 2 : expectedRetries + 1 }\\)\x1B\\[0m\x1B\\[(?:33|90)m \\([0-9]+.+?\\)\x1B\\[0m$` ) ), @@ -708,7 +715,7 @@ const verifySpecOutputs = ( `^\x1B\\[35m {2}${PASS_SYMBOL}\x1B\\[39m\x1B\\[90m should be flaky${escapeStringRegexp( expectedFlakeTestNameSuffix )}\x1B\\[0m\x1B\\[35m \\[flaky, quarantined]\x1B\\[39m\x1B\\[33m \\(attempt 2 of ${ - expectedRetries + 1 + adjustRetriesOnPass ? 2 : expectedRetries + 1 }\\)\x1B\\[0m\x1B\\[(?:33|90)m \\([0-9]+.+?\\)\x1B\\[0m$` ) ) @@ -718,7 +725,7 @@ const verifySpecOutputs = ( `^\x1B\\[33m {2}${PASS_SYMBOL}\x1B\\[0m\x1B\\[90m should be flaky${escapeStringRegexp( expectedFlakeTestNameSuffix )}\x1B\\[0m\x1B\\[33m \\[flaky]\x1B\\[0m\x1B\\[33m \\(attempt 2 of ${ - expectedRetries + 1 + adjustRetriesOnPass ? 2 : expectedRetries + 1 }\\)\x1B\\[0m\x1B\\[(?:33|90)m \\([0-9]+.+?\\)\x1B\\[0m$` ) ), From d9de4571085121f920c815968a97490a847554d7 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Tue, 31 Oct 2023 12:55:04 -0700 Subject: [PATCH 21/24] [cypress] Disable Cypress 13.3 in CI Due to https://github.com/cypress-io/cypress/issues/28141 and https://github.com/cypress-io/cypress/issues/28148, Cypress 13.3 is too flaky to test in CI. This regression was fixed in Cypress 13.4. --- .github/workflows/ci.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c30d6b8..3bf1171 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -131,7 +131,11 @@ jobs: - "13.0" - "13.1" - "13.2" - - "13.3" + # 13.3.2 introduced a regression that made that version (and 13.3.3) too flaky to test. + # See: + # - https://github.com/cypress-io/cypress/issues/28141 + # - https://github.com/cypress-io/cypress/issues/28148 + #- "13.3" - "13.4" steps: - uses: actions/checkout@v4 @@ -242,7 +246,7 @@ jobs: - "13.0" - "13.1" - "13.2" - - "13.3" + #- "13.3" - "13.4" steps: - uses: actions/checkout@v4 From b30237dd280135c5eca4adf64a6fb7de5cfcbd6b Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Tue, 31 Oct 2023 21:43:08 -0700 Subject: [PATCH 22/24] [cypress] Treat Cypress verification timeout as test-independent --- packages/cypress-plugin/test/integration/unflakable.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cypress-plugin/test/integration/unflakable.js b/packages/cypress-plugin/test/integration/unflakable.js index 96914fb..7e9c473 100644 --- a/packages/cypress-plugin/test/integration/unflakable.js +++ b/packages/cypress-plugin/test/integration/unflakable.js @@ -16,5 +16,6 @@ module.exports = { // bug. Instead, we treat it as a test independent failure iff this error message is in the // output. Otherwise, we'll still treat it as a true failure. /Timed out waiting for the browser to connect. Retrying\.\.\./, + /Cypress verification timed out\./, ], }; From dff9b5903199039366eb257709abb36649224846 Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Wed, 8 Nov 2023 16:23:34 -0800 Subject: [PATCH 23/24] [cypress] Support Cypress 13.5 --- .github/workflows/ci.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3bf1171..840be35 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -137,6 +137,7 @@ jobs: # - https://github.com/cypress-io/cypress/issues/28148 #- "13.3" - "13.4" + - "13.5" steps: - uses: actions/checkout@v4 @@ -175,6 +176,9 @@ jobs: mv package-new.json package.json yarn install --no-immutable + - name: Build test dependencies + run: yarn build:plugins-common && yarn build:test-common && yarn build:cypress-tests + - name: Set Cypress version env: CYPRESS_INSTALL_BINARY: "0" @@ -185,9 +189,6 @@ jobs: - name: Install Cypress binary run: yarn workspace cypress-integration exec cypress install - - name: Build test dependencies - run: yarn build:plugins-common && yarn build:test-common && yarn build:cypress-tests - - name: Test env: # Enable debug logs within the Jest tests that run Cypress. WARNING: these are very @@ -248,6 +249,7 @@ jobs: - "13.2" #- "13.3" - "13.4" + - "13.5" steps: - uses: actions/checkout@v4 @@ -290,6 +292,9 @@ jobs: mv package-new.json package.json yarn install --no-immutable + - name: Build test dependencies + run: yarn build:plugins-common && yarn build:test-common && yarn build:cypress-tests + - name: Set Cypress version env: CYPRESS_INSTALL_BINARY: "0" @@ -300,9 +305,6 @@ jobs: - name: Install Cypress binary run: yarn workspace cypress-integration exec cypress install - - name: Build test dependencies - run: yarn build:plugins-common && yarn build:test-common && yarn build:cypress-tests - - name: Test env: # Enable debug logs within the Jest tests that run Cypress. WARNING: these are very From b91440d765b090b7661ed19410481f1bd2764a4f Mon Sep 17 00:00:00 2001 From: "David A. Ramos" Date: Mon, 1 Jan 2024 22:58:32 -0800 Subject: [PATCH 24/24] Update copyright years --- .eslintrc-ts.js | 2 +- .eslintrc.js | 2 +- LICENSE | 2 +- packages/cypress-plugin/cypress-on-fix.d.ts | 2 +- packages/cypress-plugin/jest.config.js | 2 +- packages/cypress-plugin/mocha.d.ts | 2 +- packages/cypress-plugin/rollup.config.mjs | 2 +- packages/cypress-plugin/src/.eslintrc.js | 2 +- packages/cypress-plugin/src/config-env-vars.ts | 2 +- packages/cypress-plugin/src/config-wrapper-sync.ts | 2 +- packages/cypress-plugin/src/config-wrapper.ts | 2 +- packages/cypress-plugin/src/cypress-env-vars.ts | 2 +- packages/cypress-plugin/src/index.ts | 2 +- packages/cypress-plugin/src/load-user-config.ts | 2 +- packages/cypress-plugin/src/main.ts | 2 +- packages/cypress-plugin/src/plugin.ts | 2 +- packages/cypress-plugin/src/reporter-common.ts | 2 +- packages/cypress-plugin/src/reporter-config.test.ts | 2 +- packages/cypress-plugin/src/reporter-config.ts | 2 +- packages/cypress-plugin/src/reporter.ts | 2 +- packages/cypress-plugin/src/skip-tests.ts | 2 +- packages/cypress-plugin/src/utils.ts | 2 +- packages/cypress-plugin/src/vendored/cli-table3.d.ts | 2 +- packages/cypress-plugin/test/.eslintrc.cjs | 2 +- .../cypress-plugin/test/integration-input-esm/.eslintrc.cjs | 2 +- .../test/integration-input-esm/config-js/devtools.js | 2 +- .../test/integration-input-esm/config-js/headless.js | 2 +- .../test/integration-input-esm/config-js/tasks.js | 2 +- .../test/integration-input-esm/config-js/webpack.js | 2 +- .../test/integration-input-esm/config/devtools.ts | 2 +- .../test/integration-input-esm/config/headless.ts | 2 +- .../cypress-plugin/test/integration-input-esm/config/tasks.ts | 2 +- .../cypress-plugin/test/integration-input-esm/config/webpack.ts | 2 +- .../test/integration-input-esm/cypress-config.cjs | 2 +- .../cypress-plugin/test/integration-input-esm/cypress-config.js | 2 +- .../cypress-plugin/test/integration-input-esm/cypress.config.ts | 2 +- .../test/integration-input-esm/cypress/support-js/commands.js | 2 +- .../test/integration-input-esm/cypress/support-js/component.cjs | 2 +- .../test/integration-input-esm/cypress/support-js/component.js | 2 +- .../test/integration-input-esm/cypress/support-js/e2e.cjs | 2 +- .../test/integration-input-esm/cypress/support-js/e2e.js | 2 +- .../test/integration-input-esm/cypress/support/commands.ts | 2 +- .../integration-input-esm/cypress/support/component-index.html | 2 ++ .../test/integration-input-esm/cypress/support/component.ts | 2 +- .../test/integration-input-esm/cypress/support/e2e.ts | 2 +- .../test/integration-input-manual/config/devtools.js | 2 +- .../test/integration-input-manual/config/headless.js | 2 +- .../test/integration-input-manual/config/tasks.js | 2 +- .../test/integration-input-manual/config/webpack.js | 2 +- .../test/integration-input-manual/cypress-config.mjs | 2 +- .../test/integration-input-manual/cypress.config.js | 2 +- .../test/integration-input-manual/cypress/e2e/fail.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/flake.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/hook-fail.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/invalid.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/mixed/mixed.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/pass.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/pending.cy.js | 2 +- .../test/integration-input-manual/cypress/e2e/quarantined.cy.js | 2 +- .../test/integration-input-manual/cypress/support/commands.js | 2 +- .../cypress/support/component-index.html | 2 ++ .../test/integration-input-manual/cypress/support/component.js | 2 +- .../integration-input-manual/cypress/support/e2e-webpack5.js | 2 +- .../test/integration-input-manual/cypress/support/e2e.js | 2 +- packages/cypress-plugin/test/integration-input/.eslintrc.js | 2 +- .../cypress-plugin/test/integration-input/config-js/devtools.js | 2 +- .../cypress-plugin/test/integration-input/config-js/headless.js | 2 +- .../cypress-plugin/test/integration-input/config-js/tasks.js | 2 +- .../cypress-plugin/test/integration-input/config-js/webpack.js | 2 +- .../cypress-plugin/test/integration-input/config/devtools.ts | 2 +- .../cypress-plugin/test/integration-input/config/headless.ts | 2 +- packages/cypress-plugin/test/integration-input/config/tasks.ts | 2 +- .../cypress-plugin/test/integration-input/config/webpack.ts | 2 +- .../cypress-plugin/test/integration-input/cypress-config.js | 2 +- .../cypress-plugin/test/integration-input/cypress-config.mjs | 2 +- .../cypress-plugin/test/integration-input/cypress.config.ts | 2 +- .../test/integration-input/cypress/component/fail.cy.ts | 2 +- .../test/integration-input/cypress/component/flake.cy.ts | 2 +- .../test/integration-input/cypress/component/hook-fail.cy.ts | 2 +- .../test/integration-input/cypress/component/invalid.cy.ts | 2 +- .../test/integration-input/cypress/component/mixed/mixed.cy.ts | 2 +- .../test/integration-input/cypress/component/pass.cy.ts | 2 +- .../test/integration-input/cypress/component/pending.cy.ts | 2 +- .../test/integration-input/cypress/component/quarantined.cy.ts | 2 +- .../test/integration-input/cypress/support-js/commands.js | 2 +- .../test/integration-input/cypress/support-js/component.js | 2 +- .../test/integration-input/cypress/support-js/component.mjs | 2 +- .../test/integration-input/cypress/support-js/e2e.js | 2 +- .../test/integration-input/cypress/support-js/e2e.mjs | 2 +- .../test/integration-input/cypress/support/commands.ts | 2 +- .../test/integration-input/cypress/support/component-index.html | 2 ++ .../test/integration-input/cypress/support/component.ts | 2 +- .../test/integration-input/cypress/support/e2e.ts | 2 +- packages/cypress-plugin/test/integration/.eslintrc.js | 2 +- packages/cypress-plugin/test/integration/jest.config.js | 2 +- .../cypress-plugin/test/integration/src/basic-matrix.test.ts | 2 +- packages/cypress-plugin/test/integration/src/basic.test.ts | 2 +- packages/cypress-plugin/test/integration/src/config.test.ts | 2 +- .../cypress-plugin/test/integration/src/disable-plugin.test.ts | 2 +- .../cypress-plugin/test/integration/src/disable-upload.test.ts | 2 +- packages/cypress-plugin/test/integration/src/git.test.ts | 2 +- .../cypress-plugin/test/integration/src/hook-failures.test.ts | 2 +- packages/cypress-plugin/test/integration/src/long-names.test.ts | 2 +- packages/cypress-plugin/test/integration/src/matchers.ts | 2 +- .../cypress-plugin/test/integration/src/no-quarantine.test.ts | 2 +- packages/cypress-plugin/test/integration/src/parse-output.ts | 2 +- .../cypress-plugin/test/integration/src/plugin-failures.test.ts | 2 +- packages/cypress-plugin/test/integration/src/retries.test.ts | 2 +- packages/cypress-plugin/test/integration/src/run-test-case.ts | 2 +- packages/cypress-plugin/test/integration/src/test-wrappers.ts | 2 +- packages/cypress-plugin/test/integration/src/unicode.test.ts | 2 +- packages/cypress-plugin/test/integration/src/verify-output.ts | 2 +- packages/cypress-plugin/test/integration/unflakable.js | 2 +- packages/jest-plugin/.eslintrc.js | 2 +- packages/jest-plugin/LICENSE | 2 +- packages/jest-plugin/jest-circus.d.ts | 2 +- packages/jest-plugin/jest.config.js | 2 +- packages/jest-plugin/rollup.config.mjs | 2 +- packages/jest-plugin/src/config.test.ts | 2 +- packages/jest-plugin/src/config.ts | 2 +- packages/jest-plugin/src/index.ts | 2 +- packages/jest-plugin/src/reporter.ts | 2 +- packages/jest-plugin/src/runner.ts | 2 +- packages/jest-plugin/src/test-runner.ts | 2 +- packages/jest-plugin/src/types.ts | 2 +- packages/jest-plugin/src/utils.ts | 2 +- packages/jest-plugin/src/vendored/SummaryReporter.ts | 2 +- packages/jest-plugin/src/vendored/getResultHeader.ts | 2 +- packages/jest-plugin/src/vendored/getSummary.ts | 2 +- packages/jest-plugin/test/.eslintrc.js | 2 +- packages/jest-plugin/test/babel.config.js | 2 +- packages/jest-plugin/test/integration-input/jest.config.js | 2 +- packages/jest-plugin/test/integration-input/src/fail.test.ts | 2 +- packages/jest-plugin/test/integration-input/src/flake.test.ts | 2 +- packages/jest-plugin/test/integration-input/src/invalid.test.ts | 2 +- packages/jest-plugin/test/integration-input/src/mixed.test.ts | 2 +- packages/jest-plugin/test/integration-input/src/pass.test.ts | 2 +- .../jest-plugin/test/integration-input/src/quarantined.test.ts | 2 +- packages/jest-plugin/test/integration/jest.config.js | 2 +- packages/jest-plugin/test/integration/src/basic.test.ts | 2 +- packages/jest-plugin/test/integration/src/config.test.ts | 2 +- .../jest-plugin/test/integration/src/disable-plugin.test.ts | 2 +- .../jest-plugin/test/integration/src/disable-upload.test.ts | 2 +- packages/jest-plugin/test/integration/src/force-color.js | 2 +- packages/jest-plugin/test/integration/src/git.test.ts | 2 +- .../jest-plugin/test/integration/src/ignore-failures.test.ts | 2 +- packages/jest-plugin/test/integration/src/long-names.test.ts | 2 +- packages/jest-plugin/test/integration/src/matchers.ts | 2 +- packages/jest-plugin/test/integration/src/no-quarantine.test.ts | 2 +- .../jest-plugin/test/integration/src/plugin-failures.test.ts | 2 +- packages/jest-plugin/test/integration/src/retries.test.ts | 2 +- packages/jest-plugin/test/integration/src/run-test-case.ts | 2 +- packages/jest-plugin/test/integration/src/skip-tests.test.ts | 2 +- packages/jest-plugin/test/integration/src/snapshots.test.ts | 2 +- .../jest-plugin/test/integration/src/test-independence.test.ts | 2 +- .../jest-plugin/test/integration/src/test-name-pattern.test.ts | 2 +- packages/jest-plugin/test/integration/src/test-wrappers.ts | 2 +- packages/jest-plugin/test/integration/src/verify-output.ts | 2 +- packages/jest-plugin/window.d.ts | 2 +- packages/js-api/.eslintrc.js | 2 +- packages/js-api/LICENSE | 2 +- packages/js-api/src/consts.ts | 2 +- packages/js-api/src/index.ts | 2 +- packages/plugins-common/.eslintrc.js | 2 +- packages/plugins-common/src/config.ts | 2 +- packages/plugins-common/src/env.ts | 2 +- packages/plugins-common/src/git.ts | 2 +- packages/plugins-common/src/index.ts | 2 +- packages/plugins-common/src/manifest.ts | 2 +- packages/plugins-common/src/quarantine.ts | 2 +- packages/test-common/.eslintrc.js | 2 +- packages/test-common/rollup.config.mjs | 2 +- packages/test-common/src/config.ts | 2 +- packages/test-common/src/git.ts | 2 +- packages/test-common/src/mock-backend.ts | 2 +- packages/test-common/src/mock-cosmiconfig.ts | 2 +- packages/test-common/src/mock-git.ts | 2 +- packages/test-common/src/spawn.ts | 2 +- scripts/.eslintrc.js | 2 +- scripts/set-jest-version.ts | 2 +- 180 files changed, 183 insertions(+), 177 deletions(-) diff --git a/.eslintrc-ts.js b/.eslintrc-ts.js index a8798c8..1f41f9c 100644 --- a/.eslintrc-ts.js +++ b/.eslintrc-ts.js @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC module.exports = { extends: [ diff --git a/.eslintrc.js b/.eslintrc.js index 689ec41..fde84cc 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC module.exports = { env: { diff --git a/LICENSE b/LICENSE index 53bf01b..fc24ed8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022-2023 Developer Innovations, LLC +Copyright (c) 2022-2024 Developer Innovations, LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/packages/cypress-plugin/cypress-on-fix.d.ts b/packages/cypress-plugin/cypress-on-fix.d.ts index abce4b3..7d24e1b 100644 --- a/packages/cypress-plugin/cypress-on-fix.d.ts +++ b/packages/cypress-plugin/cypress-on-fix.d.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC declare module "cypress-on-fix" { import * as Cypress from "cypress"; diff --git a/packages/cypress-plugin/jest.config.js b/packages/cypress-plugin/jest.config.js index d2d9b3c..5ed0700 100644 --- a/packages/cypress-plugin/jest.config.js +++ b/packages/cypress-plugin/jest.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /** @type {import('ts-jest').JestConfigWithTsJest} */ module.exports = { diff --git a/packages/cypress-plugin/mocha.d.ts b/packages/cypress-plugin/mocha.d.ts index 428fca1..937533b 100644 --- a/packages/cypress-plugin/mocha.d.ts +++ b/packages/cypress-plugin/mocha.d.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC type GlobalError = Error; diff --git a/packages/cypress-plugin/rollup.config.mjs b/packages/cypress-plugin/rollup.config.mjs index f7b899a..3b6678e 100644 --- a/packages/cypress-plugin/rollup.config.mjs +++ b/packages/cypress-plugin/rollup.config.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import pluginCommonJs from "@rollup/plugin-commonjs"; import pluginDts from "rollup-plugin-dts"; diff --git a/packages/cypress-plugin/src/.eslintrc.js b/packages/cypress-plugin/src/.eslintrc.js index 62e8179..4070ee2 100644 --- a/packages/cypress-plugin/src/.eslintrc.js +++ b/packages/cypress-plugin/src/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../../.eslintrc-ts.js"], diff --git a/packages/cypress-plugin/src/config-env-vars.ts b/packages/cypress-plugin/src/config-env-vars.ts index d9623b1..721480f 100644 --- a/packages/cypress-plugin/src/config-env-vars.ts +++ b/packages/cypress-plugin/src/config-env-vars.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { EnvVar } from "@unflakable/plugins-common"; diff --git a/packages/cypress-plugin/src/config-wrapper-sync.ts b/packages/cypress-plugin/src/config-wrapper-sync.ts index 3b4e983..96b672f 100644 --- a/packages/cypress-plugin/src/config-wrapper-sync.ts +++ b/packages/cypress-plugin/src/config-wrapper-sync.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { wrapCypressConfig } from "./index"; import _debug from "debug"; diff --git a/packages/cypress-plugin/src/config-wrapper.ts b/packages/cypress-plugin/src/config-wrapper.ts index 507c638..8b01fca 100644 --- a/packages/cypress-plugin/src/config-wrapper.ts +++ b/packages/cypress-plugin/src/config-wrapper.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { wrapCypressConfig } from "./index"; import _debug from "debug"; diff --git a/packages/cypress-plugin/src/cypress-env-vars.ts b/packages/cypress-plugin/src/cypress-env-vars.ts index 14c03b0..52f34fd 100644 --- a/packages/cypress-plugin/src/cypress-env-vars.ts +++ b/packages/cypress-plugin/src/cypress-env-vars.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // NB: This file is separate from config-env-vars.ts so that it can be included by skip-tests.ts // without adding any Node.JS dependencies (since that file needs to run in the browser). diff --git a/packages/cypress-plugin/src/index.ts b/packages/cypress-plugin/src/index.ts index fb65ae9..9a7cbdc 100644 --- a/packages/cypress-plugin/src/index.ts +++ b/packages/cypress-plugin/src/index.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import _debug from "debug"; import { diff --git a/packages/cypress-plugin/src/load-user-config.ts b/packages/cypress-plugin/src/load-user-config.ts index 48a26d1..d56ecc5 100644 --- a/packages/cypress-plugin/src/load-user-config.ts +++ b/packages/cypress-plugin/src/load-user-config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import _debug from "debug"; import { require } from "./utils"; diff --git a/packages/cypress-plugin/src/main.ts b/packages/cypress-plugin/src/main.ts index ccf5ad2..314509e 100755 --- a/packages/cypress-plugin/src/main.ts +++ b/packages/cypress-plugin/src/main.ts @@ -1,6 +1,6 @@ //#!/usr/bin/env node -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import * as cypress from "cypress"; import _debug from "debug"; diff --git a/packages/cypress-plugin/src/plugin.ts b/packages/cypress-plugin/src/plugin.ts index 158e548..9cf075f 100644 --- a/packages/cypress-plugin/src/plugin.ts +++ b/packages/cypress-plugin/src/plugin.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { createTestSuiteRun, diff --git a/packages/cypress-plugin/src/reporter-common.ts b/packages/cypress-plugin/src/reporter-common.ts index 11d6a62..3b8bbbc 100644 --- a/packages/cypress-plugin/src/reporter-common.ts +++ b/packages/cypress-plugin/src/reporter-common.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Reporter stats from running a single spec. export type ReporterStats = Mocha.Stats & { diff --git a/packages/cypress-plugin/src/reporter-config.test.ts b/packages/cypress-plugin/src/reporter-config.test.ts index 55d40b6..9fe454d 100644 --- a/packages/cypress-plugin/src/reporter-config.test.ts +++ b/packages/cypress-plugin/src/reporter-config.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { configureMochaReporter } from "./reporter-config"; import { QuarantineMode } from "@unflakable/plugins-common"; diff --git a/packages/cypress-plugin/src/reporter-config.ts b/packages/cypress-plugin/src/reporter-config.ts index d8e4951..dfbfbe8 100644 --- a/packages/cypress-plugin/src/reporter-config.ts +++ b/packages/cypress-plugin/src/reporter-config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { ReporterConfig } from "./reporter"; import { printWarning, require } from "./utils"; diff --git a/packages/cypress-plugin/src/reporter.ts b/packages/cypress-plugin/src/reporter.ts index 3475e69..c1fdddd 100644 --- a/packages/cypress-plugin/src/reporter.ts +++ b/packages/cypress-plugin/src/reporter.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import _debug from "debug"; import { diff --git a/packages/cypress-plugin/src/skip-tests.ts b/packages/cypress-plugin/src/skip-tests.ts index 18531b2..deabbc8 100644 --- a/packages/cypress-plugin/src/skip-tests.ts +++ b/packages/cypress-plugin/src/skip-tests.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // This file runs inside the browser as part of the test code. It gets loaded by a Cypress support // file injected by the plugin when quarantine mode is set to `skip_tests`. diff --git a/packages/cypress-plugin/src/utils.ts b/packages/cypress-plugin/src/utils.ts index 95d5fa7..f2f0bad 100644 --- a/packages/cypress-plugin/src/utils.ts +++ b/packages/cypress-plugin/src/utils.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import chalk from "chalk"; import { readFileSync } from "fs"; diff --git a/packages/cypress-plugin/src/vendored/cli-table3.d.ts b/packages/cypress-plugin/src/vendored/cli-table3.d.ts index 14c7749..f7b1b70 100644 --- a/packages/cypress-plugin/src/vendored/cli-table3.d.ts +++ b/packages/cypress-plugin/src/vendored/cli-table3.d.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Cypress imports this even though it's not part of the cli-table3 exports, so we add some types // here. diff --git a/packages/cypress-plugin/test/.eslintrc.cjs b/packages/cypress-plugin/test/.eslintrc.cjs index 7b41633..ea0aeee 100644 --- a/packages/cypress-plugin/test/.eslintrc.cjs +++ b/packages/cypress-plugin/test/.eslintrc.cjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { env: { diff --git a/packages/cypress-plugin/test/integration-input-esm/.eslintrc.cjs b/packages/cypress-plugin/test/integration-input-esm/.eslintrc.cjs index b6febf5..0015a28 100644 --- a/packages/cypress-plugin/test/integration-input-esm/.eslintrc.cjs +++ b/packages/cypress-plugin/test/integration-input-esm/.eslintrc.cjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../../../.eslintrc-ts.js"], diff --git a/packages/cypress-plugin/test/integration-input-esm/config-js/devtools.js b/packages/cypress-plugin/test/integration-input-esm/config-js/devtools.js index afbffdc..b21da85 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config-js/devtools.js +++ b/packages/cypress-plugin/test/integration-input-esm/config-js/devtools.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC export const openDevToolsOnLaunch = /** diff --git a/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js b/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js index 093bf8c..82602cc 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js +++ b/packages/cypress-plugin/test/integration-input-esm/config-js/headless.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /** * Workaround for https://github.com/cypress-io/cypress/issues/27804. diff --git a/packages/cypress-plugin/test/integration-input-esm/config-js/tasks.js b/packages/cypress-plugin/test/integration-input-esm/config-js/tasks.js index 4f0f5a3..6be9d7f 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config-js/tasks.js +++ b/packages/cypress-plugin/test/integration-input-esm/config-js/tasks.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /** * @param {Cypress.PluginEvents} on diff --git a/packages/cypress-plugin/test/integration-input-esm/config-js/webpack.js b/packages/cypress-plugin/test/integration-input-esm/config-js/webpack.js index d159eac..60d0dad 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config-js/webpack.js +++ b/packages/cypress-plugin/test/integration-input-esm/config-js/webpack.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { default as webpack } from "webpack"; diff --git a/packages/cypress-plugin/test/integration-input-esm/config/devtools.ts b/packages/cypress-plugin/test/integration-input-esm/config/devtools.ts index 58d80d5..f117e1a 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config/devtools.ts +++ b/packages/cypress-plugin/test/integration-input-esm/config/devtools.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC export const openDevToolsOnLaunch = (on: Cypress.PluginEvents): void => { // Open DevTools automatically. Only works for headed modes (i.e., not in screenshots or diff --git a/packages/cypress-plugin/test/integration-input-esm/config/headless.ts b/packages/cypress-plugin/test/integration-input-esm/config/headless.ts index 05519ff..81a2718 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config/headless.ts +++ b/packages/cypress-plugin/test/integration-input-esm/config/headless.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Workaround for https://github.com/cypress-io/cypress/issues/27804. export const fixHeadlessChrome = (on: Cypress.PluginEvents): void => { diff --git a/packages/cypress-plugin/test/integration-input-esm/config/tasks.ts b/packages/cypress-plugin/test/integration-input-esm/config/tasks.ts index 5d492df..0a5cb4f 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config/tasks.ts +++ b/packages/cypress-plugin/test/integration-input-esm/config/tasks.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC export const registerTasks = (on: Cypress.PluginEvents): void => { // Used for both testing that the support file gets loaded and testing that the project's diff --git a/packages/cypress-plugin/test/integration-input-esm/config/webpack.ts b/packages/cypress-plugin/test/integration-input-esm/config/webpack.ts index ff784d0..ca31892 100644 --- a/packages/cypress-plugin/test/integration-input-esm/config/webpack.ts +++ b/packages/cypress-plugin/test/integration-input-esm/config/webpack.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { default as webpack } from "webpack"; diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs b/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs index ecde34b..d85ac80 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs +++ b/packages/cypress-plugin/test/integration-input-esm/cypress-config.cjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const { registerSimpleGitMock } = require("unflakable-test-common/dist/git"); const { diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress-config.js b/packages/cypress-plugin/test/integration-input-esm/cypress-config.js index c203809..4cd3f6e 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress-config.js +++ b/packages/cypress-plugin/test/integration-input-esm/cypress-config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { openDevToolsOnLaunch } from "./config-js/devtools.js"; import { registerTasks } from "./config-js/tasks.js"; diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts b/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts index 8a8ca57..9b90f72 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts +++ b/packages/cypress-plugin/test/integration-input-esm/cypress.config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defineConfig } from "cypress"; // Relative import paths require file extensions in ESM. diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/commands.js b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/commands.js index 1a7516c..5eb705e 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/commands.js +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/commands.js @@ -1,3 +1,3 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC Cypress.Commands.add("consoleLog", (msg) => cy.task("log", msg)); diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.cjs b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.cjs index 0b677aa..b257777 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.cjs +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.cjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC require("./commands.js"); diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.js b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.js index 3c38662..e784a05 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.js +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/component.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using ES2015 syntax: import "./commands.js"; diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.cjs b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.cjs index c254fe4..cd10e9e 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.cjs +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.cjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using CJS syntax: require("./commands.js"); diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.js b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.js index 0447f29..1e2cc15 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.js +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support-js/e2e.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using ES2015 syntax: import "./commands.js"; diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support/commands.ts b/packages/cypress-plugin/test/integration-input-esm/cypress/support/commands.ts index a6cb68a..876f349 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support/commands.ts +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support/commands.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Webpack non-deterministically reports a TypeScript error here when run through Cypress. It seems // to happen when `cypress-support-file` includes diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support/component-index.html b/packages/cypress-plugin/test/integration-input-esm/cypress/support/component-index.html index e39ba42..92d3f43 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support/component-index.html +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support/component-index.html @@ -1,3 +1,5 @@ + + diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support/component.ts b/packages/cypress-plugin/test/integration-input-esm/cypress/support/component.ts index 87db971..8225d55 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support/component.ts +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support/component.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import "./commands.ts"; diff --git a/packages/cypress-plugin/test/integration-input-esm/cypress/support/e2e.ts b/packages/cypress-plugin/test/integration-input-esm/cypress/support/e2e.ts index 8fd06b4..9127c7b 100644 --- a/packages/cypress-plugin/test/integration-input-esm/cypress/support/e2e.ts +++ b/packages/cypress-plugin/test/integration-input-esm/cypress/support/e2e.ts @@ -1,3 +1,3 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import "./commands.ts"; diff --git a/packages/cypress-plugin/test/integration-input-manual/config/devtools.js b/packages/cypress-plugin/test/integration-input-manual/config/devtools.js index c117765..e96f27e 100644 --- a/packages/cypress-plugin/test/integration-input-manual/config/devtools.js +++ b/packages/cypress-plugin/test/integration-input-manual/config/devtools.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { /** diff --git a/packages/cypress-plugin/test/integration-input-manual/config/headless.js b/packages/cypress-plugin/test/integration-input-manual/config/headless.js index a116630..f6540a0 100644 --- a/packages/cypress-plugin/test/integration-input-manual/config/headless.js +++ b/packages/cypress-plugin/test/integration-input-manual/config/headless.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { /** diff --git a/packages/cypress-plugin/test/integration-input-manual/config/tasks.js b/packages/cypress-plugin/test/integration-input-manual/config/tasks.js index 95cba3e..45c7d8a 100644 --- a/packages/cypress-plugin/test/integration-input-manual/config/tasks.js +++ b/packages/cypress-plugin/test/integration-input-manual/config/tasks.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { /** diff --git a/packages/cypress-plugin/test/integration-input-manual/config/webpack.js b/packages/cypress-plugin/test/integration-input-manual/config/webpack.js index c6501b8..6e44c41 100644 --- a/packages/cypress-plugin/test/integration-input-manual/config/webpack.js +++ b/packages/cypress-plugin/test/integration-input-manual/config/webpack.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const webpack = require("webpack"); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs b/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs index 1f976f6..e372c25 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs +++ b/packages/cypress-plugin/test/integration-input-manual/cypress-config.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import devtools from "./config/devtools.js"; import tasks from "./config/tasks.js"; diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress.config.js b/packages/cypress-plugin/test/integration-input-manual/cypress.config.js index 4f34373..b45cbd1 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress.config.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const { openDevToolsOnLaunch } = require("./config/devtools"); const { registerTasks } = require("./config/tasks"); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/fail.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/fail.cy.js index c1bec18..cc6a872 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/fail.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/fail.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const testFn = Cypress.env("SKIP_FAILURES") !== undefined ? it.skip : it; diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/flake.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/flake.cy.js index 1bab7bc..fef71a2 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/flake.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/flake.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /* let calls = 0; diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/hook-fail.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/hook-fail.cy.js index 297f0bb..3478d79 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/hook-fail.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/hook-fail.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC describe("describe block", () => { if (Cypress.env("SKIP_BEFORE_HOOK") === undefined) { diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/invalid.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/invalid.cy.js index aa580f4..a5af12b 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/invalid.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/invalid.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC if (Cypress.env("SKIP_FAILURES") === undefined) { throw new Error("invalid test file"); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/mixed/mixed.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/mixed/mixed.cy.js index e731026..3094edd 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/mixed/mixed.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/mixed/mixed.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC describe("spec with mixed test results", () => { const quarantinedTestFn = diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pass.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pass.cy.js index 05d345a..5b22ca4 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pass.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pass.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC it("should pass", () => { // Make sure the project's support file works even when skip_tests generates a temporary one on diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pending.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pending.cy.js index 2704e82..8f7488a 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pending.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/pending.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC it("stub should be pending"); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/quarantined.cy.js b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/quarantined.cy.js index f43ebc0..6682e4c 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/quarantined.cy.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/e2e/quarantined.cy.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC describe("describe block", () => { (Cypress.env("SKIP_QUARANTINED") !== undefined ? it.skip : it)( diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/support/commands.js b/packages/cypress-plugin/test/integration-input-manual/cypress/support/commands.js index 1a7516c..5eb705e 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/support/commands.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/support/commands.js @@ -1,3 +1,3 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC Cypress.Commands.add("consoleLog", (msg) => cy.task("log", msg)); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/support/component-index.html b/packages/cypress-plugin/test/integration-input-manual/cypress/support/component-index.html index e39ba42..92d3f43 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/support/component-index.html +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/support/component-index.html @@ -1,3 +1,5 @@ + + diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/support/component.js b/packages/cypress-plugin/test/integration-input-manual/cypress/support/component.js index 5d0823f..d60f49e 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/support/component.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/support/component.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC require("./commands"); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e-webpack5.js b/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e-webpack5.js index 088357d..8defad6 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e-webpack5.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e-webpack5.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using CJS syntax: require("./commands.js"); diff --git a/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e.js b/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e.js index 9033340..5ae257d 100644 --- a/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e.js +++ b/packages/cypress-plugin/test/integration-input-manual/cypress/support/e2e.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using CJS syntax: require("./commands.js"); diff --git a/packages/cypress-plugin/test/integration-input/.eslintrc.js b/packages/cypress-plugin/test/integration-input/.eslintrc.js index b6febf5..0015a28 100644 --- a/packages/cypress-plugin/test/integration-input/.eslintrc.js +++ b/packages/cypress-plugin/test/integration-input/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../../../.eslintrc-ts.js"], diff --git a/packages/cypress-plugin/test/integration-input/config-js/devtools.js b/packages/cypress-plugin/test/integration-input/config-js/devtools.js index c117765..e96f27e 100644 --- a/packages/cypress-plugin/test/integration-input/config-js/devtools.js +++ b/packages/cypress-plugin/test/integration-input/config-js/devtools.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { /** diff --git a/packages/cypress-plugin/test/integration-input/config-js/headless.js b/packages/cypress-plugin/test/integration-input/config-js/headless.js index a116630..f6540a0 100644 --- a/packages/cypress-plugin/test/integration-input/config-js/headless.js +++ b/packages/cypress-plugin/test/integration-input/config-js/headless.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { /** diff --git a/packages/cypress-plugin/test/integration-input/config-js/tasks.js b/packages/cypress-plugin/test/integration-input/config-js/tasks.js index 95cba3e..45c7d8a 100644 --- a/packages/cypress-plugin/test/integration-input/config-js/tasks.js +++ b/packages/cypress-plugin/test/integration-input/config-js/tasks.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { /** diff --git a/packages/cypress-plugin/test/integration-input/config-js/webpack.js b/packages/cypress-plugin/test/integration-input/config-js/webpack.js index c6501b8..6e44c41 100644 --- a/packages/cypress-plugin/test/integration-input/config-js/webpack.js +++ b/packages/cypress-plugin/test/integration-input/config-js/webpack.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const webpack = require("webpack"); diff --git a/packages/cypress-plugin/test/integration-input/config/devtools.ts b/packages/cypress-plugin/test/integration-input/config/devtools.ts index 58d80d5..f117e1a 100644 --- a/packages/cypress-plugin/test/integration-input/config/devtools.ts +++ b/packages/cypress-plugin/test/integration-input/config/devtools.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC export const openDevToolsOnLaunch = (on: Cypress.PluginEvents): void => { // Open DevTools automatically. Only works for headed modes (i.e., not in screenshots or diff --git a/packages/cypress-plugin/test/integration-input/config/headless.ts b/packages/cypress-plugin/test/integration-input/config/headless.ts index 05519ff..81a2718 100644 --- a/packages/cypress-plugin/test/integration-input/config/headless.ts +++ b/packages/cypress-plugin/test/integration-input/config/headless.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Workaround for https://github.com/cypress-io/cypress/issues/27804. export const fixHeadlessChrome = (on: Cypress.PluginEvents): void => { diff --git a/packages/cypress-plugin/test/integration-input/config/tasks.ts b/packages/cypress-plugin/test/integration-input/config/tasks.ts index 5d492df..0a5cb4f 100644 --- a/packages/cypress-plugin/test/integration-input/config/tasks.ts +++ b/packages/cypress-plugin/test/integration-input/config/tasks.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC export const registerTasks = (on: Cypress.PluginEvents): void => { // Used for both testing that the support file gets loaded and testing that the project's diff --git a/packages/cypress-plugin/test/integration-input/config/webpack.ts b/packages/cypress-plugin/test/integration-input/config/webpack.ts index d159eac..60d0dad 100644 --- a/packages/cypress-plugin/test/integration-input/config/webpack.ts +++ b/packages/cypress-plugin/test/integration-input/config/webpack.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { default as webpack } from "webpack"; diff --git a/packages/cypress-plugin/test/integration-input/cypress-config.js b/packages/cypress-plugin/test/integration-input/cypress-config.js index 2ffbfe6..2131165 100644 --- a/packages/cypress-plugin/test/integration-input/cypress-config.js +++ b/packages/cypress-plugin/test/integration-input/cypress-config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const { openDevToolsOnLaunch } = require("config-js/devtools"); const webpackConfig = require("config-js/webpack"); diff --git a/packages/cypress-plugin/test/integration-input/cypress-config.mjs b/packages/cypress-plugin/test/integration-input/cypress-config.mjs index c5d6b38..caa4a1c 100644 --- a/packages/cypress-plugin/test/integration-input/cypress-config.mjs +++ b/packages/cypress-plugin/test/integration-input/cypress-config.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import devtools from "./config-js/devtools.js"; import tasks from "./config-js/tasks.js"; diff --git a/packages/cypress-plugin/test/integration-input/cypress.config.ts b/packages/cypress-plugin/test/integration-input/cypress.config.ts index 5375c6a..2cc784d 100644 --- a/packages/cypress-plugin/test/integration-input/cypress.config.ts +++ b/packages/cypress-plugin/test/integration-input/cypress.config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { registerSimpleGitMock } from "unflakable-test-common/dist/git"; import { registerCosmiconfigMock } from "unflakable-test-common/dist/config"; diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/fail.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/fail.cy.ts index 94b40a9..167c20f 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/fail.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/fail.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC const testFn = Cypress.env("SKIP_FAILURES") !== undefined ? it.skip : it; diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/flake.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/flake.cy.ts index 6cda5a0..6011bf6 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/flake.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/flake.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /* let calls = 0; diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/hook-fail.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/hook-fail.cy.ts index 08c00f3..ba0a1c1 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/hook-fail.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/hook-fail.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC describe("describe block", () => { if (Cypress.env("SKIP_BEFORE_HOOK") === undefined) { diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/invalid.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/invalid.cy.ts index aa580f4..a5af12b 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/invalid.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/invalid.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC if (Cypress.env("SKIP_FAILURES") === undefined) { throw new Error("invalid test file"); diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/mixed/mixed.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/mixed/mixed.cy.ts index b0ee438..5fd29be 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/mixed/mixed.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/mixed/mixed.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC describe("spec with mixed test results", () => { const quarantinedTestFn = diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/pass.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/pass.cy.ts index 05d345a..5b22ca4 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/pass.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/pass.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC it("should pass", () => { // Make sure the project's support file works even when skip_tests generates a temporary one on diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/pending.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/pending.cy.ts index 2704e82..8f7488a 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/pending.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/pending.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC it("stub should be pending"); diff --git a/packages/cypress-plugin/test/integration-input/cypress/component/quarantined.cy.ts b/packages/cypress-plugin/test/integration-input/cypress/component/quarantined.cy.ts index f43ebc0..6682e4c 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/component/quarantined.cy.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/component/quarantined.cy.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC describe("describe block", () => { (Cypress.env("SKIP_QUARANTINED") !== undefined ? it.skip : it)( diff --git a/packages/cypress-plugin/test/integration-input/cypress/support-js/commands.js b/packages/cypress-plugin/test/integration-input/cypress/support-js/commands.js index 1a7516c..5eb705e 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support-js/commands.js +++ b/packages/cypress-plugin/test/integration-input/cypress/support-js/commands.js @@ -1,3 +1,3 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC Cypress.Commands.add("consoleLog", (msg) => cy.task("log", msg)); diff --git a/packages/cypress-plugin/test/integration-input/cypress/support-js/component.js b/packages/cypress-plugin/test/integration-input/cypress/support-js/component.js index fea2a9b..04783d5 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support-js/component.js +++ b/packages/cypress-plugin/test/integration-input/cypress/support-js/component.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC require("./commands"); diff --git a/packages/cypress-plugin/test/integration-input/cypress/support-js/component.mjs b/packages/cypress-plugin/test/integration-input/cypress/support-js/component.mjs index 3c38662..e784a05 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support-js/component.mjs +++ b/packages/cypress-plugin/test/integration-input/cypress/support-js/component.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using ES2015 syntax: import "./commands.js"; diff --git a/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.js b/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.js index c254fe4..cd10e9e 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.js +++ b/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using CJS syntax: require("./commands.js"); diff --git a/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.mjs b/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.mjs index 0447f29..1e2cc15 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.mjs +++ b/packages/cypress-plugin/test/integration-input/cypress/support-js/e2e.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using ES2015 syntax: import "./commands.js"; diff --git a/packages/cypress-plugin/test/integration-input/cypress/support/commands.ts b/packages/cypress-plugin/test/integration-input/cypress/support/commands.ts index 966021a..ad471e1 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support/commands.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/support/commands.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /// diff --git a/packages/cypress-plugin/test/integration-input/cypress/support/component-index.html b/packages/cypress-plugin/test/integration-input/cypress/support/component-index.html index e39ba42..b2019a7 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support/component-index.html +++ b/packages/cypress-plugin/test/integration-input/cypress/support/component-index.html @@ -1,3 +1,5 @@ + + diff --git a/packages/cypress-plugin/test/integration-input/cypress/support/component.ts b/packages/cypress-plugin/test/integration-input/cypress/support/component.ts index 5fbee34..08f39a2 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support/component.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/support/component.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Import commands.js using ES2015 syntax: import "./commands"; diff --git a/packages/cypress-plugin/test/integration-input/cypress/support/e2e.ts b/packages/cypress-plugin/test/integration-input/cypress/support/e2e.ts index 5aa0b7c..4284eff 100644 --- a/packages/cypress-plugin/test/integration-input/cypress/support/e2e.ts +++ b/packages/cypress-plugin/test/integration-input/cypress/support/e2e.ts @@ -1,3 +1,3 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import "./commands"; diff --git a/packages/cypress-plugin/test/integration/.eslintrc.js b/packages/cypress-plugin/test/integration/.eslintrc.js index b6febf5..0015a28 100644 --- a/packages/cypress-plugin/test/integration/.eslintrc.js +++ b/packages/cypress-plugin/test/integration/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../../../.eslintrc-ts.js"], diff --git a/packages/cypress-plugin/test/integration/jest.config.js b/packages/cypress-plugin/test/integration/jest.config.js index 5184100..db3dac5 100644 --- a/packages/cypress-plugin/test/integration/jest.config.js +++ b/packages/cypress-plugin/test/integration/jest.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // NB: We *MUST* run this test suite with --runInBand because running multiple instances of Cypress // concurrently on the same machine is not supported and runs into a bunch of race conditions that diff --git a/packages/cypress-plugin/test/integration/src/basic-matrix.test.ts b/packages/cypress-plugin/test/integration/src/basic-matrix.test.ts index 60afb14..29cd967 100644 --- a/packages/cypress-plugin/test/integration/src/basic-matrix.test.ts +++ b/packages/cypress-plugin/test/integration/src/basic-matrix.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/basic.test.ts b/packages/cypress-plugin/test/integration/src/basic.test.ts index 9435b3c..d785029 100644 --- a/packages/cypress-plugin/test/integration/src/basic.test.ts +++ b/packages/cypress-plugin/test/integration/src/basic.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { integrationTestSuite, diff --git a/packages/cypress-plugin/test/integration/src/config.test.ts b/packages/cypress-plugin/test/integration/src/config.test.ts index fb40b62..ffc364b 100644 --- a/packages/cypress-plugin/test/integration/src/config.test.ts +++ b/packages/cypress-plugin/test/integration/src/config.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { integrationTestSuite, integrationTest } from "./test-wrappers"; diff --git a/packages/cypress-plugin/test/integration/src/disable-plugin.test.ts b/packages/cypress-plugin/test/integration/src/disable-plugin.test.ts index 59eb9e1..2539b47 100644 --- a/packages/cypress-plugin/test/integration/src/disable-plugin.test.ts +++ b/packages/cypress-plugin/test/integration/src/disable-plugin.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/disable-upload.test.ts b/packages/cypress-plugin/test/integration/src/disable-upload.test.ts index 14b1b3a..fe6f5b4 100644 --- a/packages/cypress-plugin/test/integration/src/disable-upload.test.ts +++ b/packages/cypress-plugin/test/integration/src/disable-upload.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { integrationTest, integrationTestSuite } from "./test-wrappers"; diff --git a/packages/cypress-plugin/test/integration/src/git.test.ts b/packages/cypress-plugin/test/integration/src/git.test.ts index 5546179..1594a79 100644 --- a/packages/cypress-plugin/test/integration/src/git.test.ts +++ b/packages/cypress-plugin/test/integration/src/git.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { integrationTest, integrationTestSuite } from "./test-wrappers"; import path from "path"; diff --git a/packages/cypress-plugin/test/integration/src/hook-failures.test.ts b/packages/cypress-plugin/test/integration/src/hook-failures.test.ts index 1294218..68fedf1 100644 --- a/packages/cypress-plugin/test/integration/src/hook-failures.test.ts +++ b/packages/cypress-plugin/test/integration/src/hook-failures.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { integrationTest, integrationTestSuite } from "./test-wrappers"; import semverLt from "semver/functions/lt"; diff --git a/packages/cypress-plugin/test/integration/src/long-names.test.ts b/packages/cypress-plugin/test/integration/src/long-names.test.ts index 9d18150..9b242f7 100644 --- a/packages/cypress-plugin/test/integration/src/long-names.test.ts +++ b/packages/cypress-plugin/test/integration/src/long-names.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/matchers.ts b/packages/cypress-plugin/test/integration/src/matchers.ts index 065a17f..b092d2c 100644 --- a/packages/cypress-plugin/test/integration/src/matchers.ts +++ b/packages/cypress-plugin/test/integration/src/matchers.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { expect } from "@jest/globals"; import type { MatcherFunction } from "expect"; diff --git a/packages/cypress-plugin/test/integration/src/no-quarantine.test.ts b/packages/cypress-plugin/test/integration/src/no-quarantine.test.ts index 3710a9c..c31e12b 100644 --- a/packages/cypress-plugin/test/integration/src/no-quarantine.test.ts +++ b/packages/cypress-plugin/test/integration/src/no-quarantine.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/parse-output.ts b/packages/cypress-plugin/test/integration/src/parse-output.ts index 17ad736..b82d778 100644 --- a/packages/cypress-plugin/test/integration/src/parse-output.ts +++ b/packages/cypress-plugin/test/integration/src/parse-output.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /* eslint-disable no-control-regex */ diff --git a/packages/cypress-plugin/test/integration/src/plugin-failures.test.ts b/packages/cypress-plugin/test/integration/src/plugin-failures.test.ts index b6434d7..09dd6ba 100644 --- a/packages/cypress-plugin/test/integration/src/plugin-failures.test.ts +++ b/packages/cypress-plugin/test/integration/src/plugin-failures.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/retries.test.ts b/packages/cypress-plugin/test/integration/src/retries.test.ts index bc99335..ab1acf6 100644 --- a/packages/cypress-plugin/test/integration/src/retries.test.ts +++ b/packages/cypress-plugin/test/integration/src/retries.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/run-test-case.ts b/packages/cypress-plugin/test/integration/src/run-test-case.ts index 414f076..a463246 100644 --- a/packages/cypress-plugin/test/integration/src/run-test-case.ts +++ b/packages/cypress-plugin/test/integration/src/run-test-case.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { CreateTestSuiteRunInlineRequest, diff --git a/packages/cypress-plugin/test/integration/src/test-wrappers.ts b/packages/cypress-plugin/test/integration/src/test-wrappers.ts index 090ecaa..278ccb8 100644 --- a/packages/cypress-plugin/test/integration/src/test-wrappers.ts +++ b/packages/cypress-plugin/test/integration/src/test-wrappers.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { runTestCase, TestCaseParams } from "./run-test-case"; import path from "path"; diff --git a/packages/cypress-plugin/test/integration/src/unicode.test.ts b/packages/cypress-plugin/test/integration/src/unicode.test.ts index a400392..d2bdd3e 100644 --- a/packages/cypress-plugin/test/integration/src/unicode.test.ts +++ b/packages/cypress-plugin/test/integration/src/unicode.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { defaultSummaryTotals, diff --git a/packages/cypress-plugin/test/integration/src/verify-output.ts b/packages/cypress-plugin/test/integration/src/verify-output.ts index f8d5f0d..33ebb92 100644 --- a/packages/cypress-plugin/test/integration/src/verify-output.ts +++ b/packages/cypress-plugin/test/integration/src/verify-output.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Make sure expected output is present and chalk-formatted correctly. import { diff --git a/packages/cypress-plugin/test/integration/unflakable.js b/packages/cypress-plugin/test/integration/unflakable.js index 7e9c473..f29e4fc 100644 --- a/packages/cypress-plugin/test/integration/unflakable.js +++ b/packages/cypress-plugin/test/integration/unflakable.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { __unstableIsFailureTestIndependent: [ diff --git a/packages/jest-plugin/.eslintrc.js b/packages/jest-plugin/.eslintrc.js index dcbec19..f943e67 100644 --- a/packages/jest-plugin/.eslintrc.js +++ b/packages/jest-plugin/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../.eslintrc-ts.js"], diff --git a/packages/jest-plugin/LICENSE b/packages/jest-plugin/LICENSE index 53bf01b..fc24ed8 100644 --- a/packages/jest-plugin/LICENSE +++ b/packages/jest-plugin/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022-2023 Developer Innovations, LLC +Copyright (c) 2022-2024 Developer Innovations, LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/packages/jest-plugin/jest-circus.d.ts b/packages/jest-plugin/jest-circus.d.ts index c17e897..833746d 100644 --- a/packages/jest-plugin/jest-circus.d.ts +++ b/packages/jest-plugin/jest-circus.d.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // jest-circus doesn't export the types for runner. See: // https://github.com/jestjs/jest/blob/6d2632adae0f0fa1fe116d3b475fd9783d0de1b5/packages/jest-circus/runner.js#L10-L9 diff --git a/packages/jest-plugin/jest.config.js b/packages/jest-plugin/jest.config.js index 6318fbd..6cd3940 100644 --- a/packages/jest-plugin/jest.config.js +++ b/packages/jest-plugin/jest.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC /** @type {import('ts-jest').JestConfigWithTsJest} */ module.exports = { diff --git a/packages/jest-plugin/rollup.config.mjs b/packages/jest-plugin/rollup.config.mjs index 797cee5..c57bf72 100644 --- a/packages/jest-plugin/rollup.config.mjs +++ b/packages/jest-plugin/rollup.config.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import path from "path"; import pluginCommonJs from "@rollup/plugin-commonjs"; diff --git a/packages/jest-plugin/src/config.test.ts b/packages/jest-plugin/src/config.test.ts index ece7c1d..b105138 100644 --- a/packages/jest-plugin/src/config.test.ts +++ b/packages/jest-plugin/src/config.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { loadConfig } from "./config"; import { cosmiconfigSync, Options } from "cosmiconfig"; diff --git a/packages/jest-plugin/src/config.ts b/packages/jest-plugin/src/config.ts index b3a87d0..97159dc 100644 --- a/packages/jest-plugin/src/config.ts +++ b/packages/jest-plugin/src/config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { IsFailureTestIndependentFn, diff --git a/packages/jest-plugin/src/index.ts b/packages/jest-plugin/src/index.ts index 0c72377..be0a8c0 100644 --- a/packages/jest-plugin/src/index.ts +++ b/packages/jest-plugin/src/index.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import reporter from "./reporter"; import runner from "./runner"; diff --git a/packages/jest-plugin/src/reporter.ts b/packages/jest-plugin/src/reporter.ts index 89e0ae9..6c1fe51 100644 --- a/packages/jest-plugin/src/reporter.ts +++ b/packages/jest-plugin/src/reporter.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import * as path from "path"; import type { diff --git a/packages/jest-plugin/src/runner.ts b/packages/jest-plugin/src/runner.ts index 7097f01..17dbcda 100644 --- a/packages/jest-plugin/src/runner.ts +++ b/packages/jest-plugin/src/runner.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import * as path from "path"; import type { SerializableError, TestResult } from "@jest/test-result"; diff --git a/packages/jest-plugin/src/test-runner.ts b/packages/jest-plugin/src/test-runner.ts index 1884aaf..4f50009 100644 --- a/packages/jest-plugin/src/test-runner.ts +++ b/packages/jest-plugin/src/test-runner.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { TestEvents, TestFileEvent, TestResult } from "@jest/test-result"; import { JestEnvironment } from "@jest/environment"; diff --git a/packages/jest-plugin/src/types.ts b/packages/jest-plugin/src/types.ts index 849a5da..3f72bbf 100644 --- a/packages/jest-plugin/src/types.ts +++ b/packages/jest-plugin/src/types.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import type { AggregatedResult, diff --git a/packages/jest-plugin/src/utils.ts b/packages/jest-plugin/src/utils.ts index 9a4e0b9..2138d0b 100644 --- a/packages/jest-plugin/src/utils.ts +++ b/packages/jest-plugin/src/utils.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import type { AssertionResult, Status } from "@jest/test-result"; import jestPackage from "jest/package.json"; diff --git a/packages/jest-plugin/src/vendored/SummaryReporter.ts b/packages/jest-plugin/src/vendored/SummaryReporter.ts index 91c9b13..5f54f95 100644 --- a/packages/jest-plugin/src/vendored/SummaryReporter.ts +++ b/packages/jest-plugin/src/vendored/SummaryReporter.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC /* This file includes portions of a Jest source code file originally downloaded from: diff --git a/packages/jest-plugin/src/vendored/getResultHeader.ts b/packages/jest-plugin/src/vendored/getResultHeader.ts index 37f80cf..86cc030 100644 --- a/packages/jest-plugin/src/vendored/getResultHeader.ts +++ b/packages/jest-plugin/src/vendored/getResultHeader.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { utils } from "@jest/reporters"; import { TestResult } from "@jest/test-result"; diff --git a/packages/jest-plugin/src/vendored/getSummary.ts b/packages/jest-plugin/src/vendored/getSummary.ts index 8422414..5b88c23 100644 --- a/packages/jest-plugin/src/vendored/getSummary.ts +++ b/packages/jest-plugin/src/vendored/getSummary.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC /* This file includes portions of a Jest source code file originally downloaded from: diff --git a/packages/jest-plugin/test/.eslintrc.js b/packages/jest-plugin/test/.eslintrc.js index 4d0da9e..b7a3a23 100644 --- a/packages/jest-plugin/test/.eslintrc.js +++ b/packages/jest-plugin/test/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { env: { diff --git a/packages/jest-plugin/test/babel.config.js b/packages/jest-plugin/test/babel.config.js index 67d5947..d3cffba 100644 --- a/packages/jest-plugin/test/babel.config.js +++ b/packages/jest-plugin/test/babel.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC /* eslint-env node */ diff --git a/packages/jest-plugin/test/integration-input/jest.config.js b/packages/jest-plugin/test/integration-input/jest.config.js index e23590c..75d15b8 100644 --- a/packages/jest-plugin/test/integration-input/jest.config.js +++ b/packages/jest-plugin/test/integration-input/jest.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC module.exports = { clearMocks: true, diff --git a/packages/jest-plugin/test/integration-input/src/fail.test.ts b/packages/jest-plugin/test/integration-input/src/fail.test.ts index cf69151..7448062 100644 --- a/packages/jest-plugin/test/integration-input/src/fail.test.ts +++ b/packages/jest-plugin/test/integration-input/src/fail.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC describe("describe block", () => { (process.env.SKIP_FAILURES !== undefined ? it.skip : it)( diff --git a/packages/jest-plugin/test/integration-input/src/flake.test.ts b/packages/jest-plugin/test/integration-input/src/flake.test.ts index 6acbbbb..9aaf8f0 100644 --- a/packages/jest-plugin/test/integration-input/src/flake.test.ts +++ b/packages/jest-plugin/test/integration-input/src/flake.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import fs from "fs/promises"; diff --git a/packages/jest-plugin/test/integration-input/src/invalid.test.ts b/packages/jest-plugin/test/integration-input/src/invalid.test.ts index 626b065..7760c16 100644 --- a/packages/jest-plugin/test/integration-input/src/invalid.test.ts +++ b/packages/jest-plugin/test/integration-input/src/invalid.test.ts @@ -1,3 +1,3 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC throw new Error("invalid test file"); diff --git a/packages/jest-plugin/test/integration-input/src/mixed.test.ts b/packages/jest-plugin/test/integration-input/src/mixed.test.ts index 129635d..05b0bf7 100644 --- a/packages/jest-plugin/test/integration-input/src/mixed.test.ts +++ b/packages/jest-plugin/test/integration-input/src/mixed.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC // This test contains both a failed test and a quarantined one, which the reporter should treat as // a failed test file. However, the quarantined test should still be reported as having been diff --git a/packages/jest-plugin/test/integration-input/src/pass.test.ts b/packages/jest-plugin/test/integration-input/src/pass.test.ts index 8e79dbf..dbd1e58 100644 --- a/packages/jest-plugin/test/integration-input/src/pass.test.ts +++ b/packages/jest-plugin/test/integration-input/src/pass.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC it("should pass", () => { if (process.env.TEST_SNAPSHOTS !== undefined) { diff --git a/packages/jest-plugin/test/integration-input/src/quarantined.test.ts b/packages/jest-plugin/test/integration-input/src/quarantined.test.ts index 397bae1..1b12471 100644 --- a/packages/jest-plugin/test/integration-input/src/quarantined.test.ts +++ b/packages/jest-plugin/test/integration-input/src/quarantined.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC describe("describe block", () => { (process.env.SKIP_QUARANTINED !== undefined ? it.skip : it)( diff --git a/packages/jest-plugin/test/integration/jest.config.js b/packages/jest-plugin/test/integration/jest.config.js index ac2e971..ceb5c34 100644 --- a/packages/jest-plugin/test/integration/jest.config.js +++ b/packages/jest-plugin/test/integration/jest.config.js @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC module.exports = { setupFilesAfterEnv: ["./src/matchers.ts"], diff --git a/packages/jest-plugin/test/integration/src/basic.test.ts b/packages/jest-plugin/test/integration/src/basic.test.ts index 2f81bec..c9427b3 100644 --- a/packages/jest-plugin/test/integration/src/basic.test.ts +++ b/packages/jest-plugin/test/integration/src/basic.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/config.test.ts b/packages/jest-plugin/test/integration/src/config.test.ts index 0f56c1e..59976d0 100644 --- a/packages/jest-plugin/test/integration/src/config.test.ts +++ b/packages/jest-plugin/test/integration/src/config.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/disable-plugin.test.ts b/packages/jest-plugin/test/integration/src/disable-plugin.test.ts index 5673309..d70dd1a 100644 --- a/packages/jest-plugin/test/integration/src/disable-plugin.test.ts +++ b/packages/jest-plugin/test/integration/src/disable-plugin.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/disable-upload.test.ts b/packages/jest-plugin/test/integration/src/disable-upload.test.ts index 38706c2..59f680f 100644 --- a/packages/jest-plugin/test/integration/src/disable-upload.test.ts +++ b/packages/jest-plugin/test/integration/src/disable-upload.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/force-color.js b/packages/jest-plugin/test/integration/src/force-color.js index 9807cd1..0978afe 100644 --- a/packages/jest-plugin/test/integration/src/force-color.js +++ b/packages/jest-plugin/test/integration/src/force-color.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Jest changes FORCE_COLOR to 1 when it forks child processes. We execute this script with // `node --require` so that each subprocess has the correct FORCE_COLOR value to produce the color diff --git a/packages/jest-plugin/test/integration/src/git.test.ts b/packages/jest-plugin/test/integration/src/git.test.ts index 0f8487d..62c3d4f 100644 --- a/packages/jest-plugin/test/integration/src/git.test.ts +++ b/packages/jest-plugin/test/integration/src/git.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import path from "path"; import { diff --git a/packages/jest-plugin/test/integration/src/ignore-failures.test.ts b/packages/jest-plugin/test/integration/src/ignore-failures.test.ts index e2e68c4..e8263b7 100644 --- a/packages/jest-plugin/test/integration/src/ignore-failures.test.ts +++ b/packages/jest-plugin/test/integration/src/ignore-failures.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/long-names.test.ts b/packages/jest-plugin/test/integration/src/long-names.test.ts index 27aa9d8..8284f15 100644 --- a/packages/jest-plugin/test/integration/src/long-names.test.ts +++ b/packages/jest-plugin/test/integration/src/long-names.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/matchers.ts b/packages/jest-plugin/test/integration/src/matchers.ts index 6919967..be025b9 100644 --- a/packages/jest-plugin/test/integration/src/matchers.ts +++ b/packages/jest-plugin/test/integration/src/matchers.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { MatcherHintOptions, diff --git a/packages/jest-plugin/test/integration/src/no-quarantine.test.ts b/packages/jest-plugin/test/integration/src/no-quarantine.test.ts index 97e735f..4d909b6 100644 --- a/packages/jest-plugin/test/integration/src/no-quarantine.test.ts +++ b/packages/jest-plugin/test/integration/src/no-quarantine.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { integrationTest, integrationTestSuite } from "./test-wrappers"; diff --git a/packages/jest-plugin/test/integration/src/plugin-failures.test.ts b/packages/jest-plugin/test/integration/src/plugin-failures.test.ts index af57524..07ec795 100644 --- a/packages/jest-plugin/test/integration/src/plugin-failures.test.ts +++ b/packages/jest-plugin/test/integration/src/plugin-failures.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/retries.test.ts b/packages/jest-plugin/test/integration/src/retries.test.ts index 95f57e9..972ca92 100644 --- a/packages/jest-plugin/test/integration/src/retries.test.ts +++ b/packages/jest-plugin/test/integration/src/retries.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/run-test-case.ts b/packages/jest-plugin/test/integration/src/run-test-case.ts index fa869f3..d27fd17 100644 --- a/packages/jest-plugin/test/integration/src/run-test-case.ts +++ b/packages/jest-plugin/test/integration/src/run-test-case.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { tmpName, TmpNameOptions } from "tmp"; import { diff --git a/packages/jest-plugin/test/integration/src/skip-tests.test.ts b/packages/jest-plugin/test/integration/src/skip-tests.test.ts index b122fbf..6586044 100644 --- a/packages/jest-plugin/test/integration/src/skip-tests.test.ts +++ b/packages/jest-plugin/test/integration/src/skip-tests.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { integrationTest, integrationTestSuite } from "./test-wrappers"; diff --git a/packages/jest-plugin/test/integration/src/snapshots.test.ts b/packages/jest-plugin/test/integration/src/snapshots.test.ts index 7c4948c..afb9383 100644 --- a/packages/jest-plugin/test/integration/src/snapshots.test.ts +++ b/packages/jest-plugin/test/integration/src/snapshots.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/test-independence.test.ts b/packages/jest-plugin/test/integration/src/test-independence.test.ts index 9905c71..e60ef6f 100644 --- a/packages/jest-plugin/test/integration/src/test-independence.test.ts +++ b/packages/jest-plugin/test/integration/src/test-independence.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import jestPackage from "jest/package.json"; import { diff --git a/packages/jest-plugin/test/integration/src/test-name-pattern.test.ts b/packages/jest-plugin/test/integration/src/test-name-pattern.test.ts index a1d6a7a..a7786ad 100644 --- a/packages/jest-plugin/test/integration/src/test-name-pattern.test.ts +++ b/packages/jest-plugin/test/integration/src/test-name-pattern.test.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { defaultExpectedResults, diff --git a/packages/jest-plugin/test/integration/src/test-wrappers.ts b/packages/jest-plugin/test/integration/src/test-wrappers.ts index 70c53f7..7cae8b6 100644 --- a/packages/jest-plugin/test/integration/src/test-wrappers.ts +++ b/packages/jest-plugin/test/integration/src/test-wrappers.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import jestPackage from "jest/package.json"; import path from "path"; diff --git a/packages/jest-plugin/test/integration/src/verify-output.ts b/packages/jest-plugin/test/integration/src/verify-output.ts index d0029de..7fee318 100644 --- a/packages/jest-plugin/test/integration/src/verify-output.ts +++ b/packages/jest-plugin/test/integration/src/verify-output.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // These are the chalk-formatted strings that include console color codes. import escapeStringRegexp from "escape-string-regexp"; diff --git a/packages/jest-plugin/window.d.ts b/packages/jest-plugin/window.d.ts index acaa11a..e0f548f 100644 --- a/packages/jest-plugin/window.d.ts +++ b/packages/jest-plugin/window.d.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC export {}; diff --git a/packages/js-api/.eslintrc.js b/packages/js-api/.eslintrc.js index 02409c8..ff96017 100644 --- a/packages/js-api/.eslintrc.js +++ b/packages/js-api/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../.eslintrc-ts.js"], diff --git a/packages/js-api/LICENSE b/packages/js-api/LICENSE index 53bf01b..fc24ed8 100644 --- a/packages/js-api/LICENSE +++ b/packages/js-api/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022-2023 Developer Innovations, LLC +Copyright (c) 2022-2024 Developer Innovations, LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/packages/js-api/src/consts.ts b/packages/js-api/src/consts.ts index cf19eab..8823e7f 100644 --- a/packages/js-api/src/consts.ts +++ b/packages/js-api/src/consts.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC export const JS_API_VERSION: string = // eslint-disable-next-line @typescript-eslint/no-var-requires diff --git a/packages/js-api/src/index.ts b/packages/js-api/src/index.ts index b2cc254..5ff206e 100644 --- a/packages/js-api/src/index.ts +++ b/packages/js-api/src/index.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import nodeFetch, { RequestInit, Response } from "node-fetch"; import _debug = require("debug"); diff --git a/packages/plugins-common/.eslintrc.js b/packages/plugins-common/.eslintrc.js index 02409c8..ff96017 100644 --- a/packages/plugins-common/.eslintrc.js +++ b/packages/plugins-common/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../.eslintrc-ts.js"], diff --git a/packages/plugins-common/src/config.ts b/packages/plugins-common/src/config.ts index d277fdd..23c171f 100644 --- a/packages/plugins-common/src/config.ts +++ b/packages/plugins-common/src/config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { CosmiconfigResult } from "cosmiconfig/dist/types"; import { cosmiconfig, cosmiconfigSync } from "cosmiconfig"; diff --git a/packages/plugins-common/src/env.ts b/packages/plugins-common/src/env.ts index 8ac5d40..a89b628 100644 --- a/packages/plugins-common/src/env.ts +++ b/packages/plugins-common/src/env.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import process from "process"; diff --git a/packages/plugins-common/src/git.ts b/packages/plugins-common/src/git.ts index d5d94cf..e2907f7 100644 --- a/packages/plugins-common/src/git.ts +++ b/packages/plugins-common/src/git.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import _debug from "debug"; import { simpleGit, SimpleGit, SimpleGitFactory } from "simple-git"; diff --git a/packages/plugins-common/src/index.ts b/packages/plugins-common/src/index.ts index ee6fa9e..5e9e953 100644 --- a/packages/plugins-common/src/index.ts +++ b/packages/plugins-common/src/index.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import path from "path"; diff --git a/packages/plugins-common/src/manifest.ts b/packages/plugins-common/src/manifest.ts index e4799f1..c552b0c 100644 --- a/packages/plugins-common/src/manifest.ts +++ b/packages/plugins-common/src/manifest.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import _debug from "debug"; import { diff --git a/packages/plugins-common/src/quarantine.ts b/packages/plugins-common/src/quarantine.ts index 70cd1b6..e8c83fb 100644 --- a/packages/plugins-common/src/quarantine.ts +++ b/packages/plugins-common/src/quarantine.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Avoid depending on the core of the js-api, which includes a bunch of Node dependencies. We need // this module to work in the browser for the Cypress plugin's skip-tests module. diff --git a/packages/test-common/.eslintrc.js b/packages/test-common/.eslintrc.js index 02409c8..ff96017 100644 --- a/packages/test-common/.eslintrc.js +++ b/packages/test-common/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../../.eslintrc-ts.js"], diff --git a/packages/test-common/rollup.config.mjs b/packages/test-common/rollup.config.mjs index 0e63ae9..9ad0ca1 100644 --- a/packages/test-common/rollup.config.mjs +++ b/packages/test-common/rollup.config.mjs @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import path from "path"; import pluginCommonJs from "@rollup/plugin-commonjs"; diff --git a/packages/test-common/src/config.ts b/packages/test-common/src/config.ts index c39d9a6..c9492da 100644 --- a/packages/test-common/src/config.ts +++ b/packages/test-common/src/config.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import _debug from "debug"; import { diff --git a/packages/test-common/src/git.ts b/packages/test-common/src/git.ts index bbbadd7..4ae081d 100644 --- a/packages/test-common/src/git.ts +++ b/packages/test-common/src/git.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import _debug from "debug"; import { setSimpleGitFactory } from "@unflakable/plugins-common"; diff --git a/packages/test-common/src/mock-backend.ts b/packages/test-common/src/mock-backend.ts index 2479a87..70dcb0a 100644 --- a/packages/test-common/src/mock-backend.ts +++ b/packages/test-common/src/mock-backend.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { CompletedRequest, diff --git a/packages/test-common/src/mock-cosmiconfig.ts b/packages/test-common/src/mock-cosmiconfig.ts index 1f6936e..90049d3 100644 --- a/packages/test-common/src/mock-cosmiconfig.ts +++ b/packages/test-common/src/mock-cosmiconfig.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Script loaded by Node.JS via --require that mocks cosmiconfig for testing. diff --git a/packages/test-common/src/mock-git.ts b/packages/test-common/src/mock-git.ts index fc84fea..477ac4e 100644 --- a/packages/test-common/src/mock-git.ts +++ b/packages/test-common/src/mock-git.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC // Script loaded by Node.JS via --require that mocks simple-git for testing. diff --git a/packages/test-common/src/spawn.ts b/packages/test-common/src/spawn.ts index 099042c..9143bcf 100644 --- a/packages/test-common/src/spawn.ts +++ b/packages/test-common/src/spawn.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC import { TextDecoder } from "util"; import treeKill from "tree-kill"; diff --git a/scripts/.eslintrc.js b/scripts/.eslintrc.js index 653facc..34454d6 100644 --- a/scripts/.eslintrc.js +++ b/scripts/.eslintrc.js @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Developer Innovations, LLC +// Copyright (c) 2023-2024 Developer Innovations, LLC module.exports = { extends: ["../.eslintrc-ts.js"], diff --git a/scripts/set-jest-version.ts b/scripts/set-jest-version.ts index 805403d..66037ca 100644 --- a/scripts/set-jest-version.ts +++ b/scripts/set-jest-version.ts @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2023 Developer Innovations, LLC +// Copyright (c) 2022-2024 Developer Innovations, LLC import { execSync, spawnSync } from "child_process"; import * as fs from "fs"; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy