bahmutov / bahmutov/cypress-repeat

Conflict with `cypress-split`

Open
#52 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
39
Forks
12
PR merge metrics
No merged PRs in 30d

Description

Hi!
We noticed some odd logs and failures with cypress-repeat and cypress-split.
We think that cypress-split get confused when a test suite doesn't have a report, which may happen with cypress-repeat with `--until-passes --rerun-failed-only`.
We created a minimum reproducible example to document it and help with the investigation:
https://github.com/louis-bompart/solid-bassoon

Just fork & enable GitHub Action on your fork, and you should see the error (attached below) in the GHA logs.

Here's a snippet of the log:

Logs
```
Could not find spec results for /home/runner/work/solid-bassoon/solid-bassoon/two.spec.ts
An error was thrown in your plugins file while executing the handler for the after:run event.

The error we received was:

TypeError: Cannot destructure property 'header' of 'cell' as it is undefined.
at /home/runner/work/solid-bassoon/solid-bassoon/node_modules/@actions/core/src/summary.ts:238:20
at Array.map ()
at /home/runner/work/solid-bassoon/solid-bassoon/node_modules/@actions/core/src/summary.ts:233:12
at Array.map ()
at Summary.addTable (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/@actions/core/src/summary.ts:231:8)
at Object.handler (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/cypress-split/src/index.js:352:14)
at invoke (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@packages/server/lib/plugins/child/run_plugins.js:183:18)
at /home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@packages/server/lib/plugins/util.js:59:14
at tryCatcher (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/bluebird/js/release/util.js:16:23)
at Function.Promise.attempt.Promise.try (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/bluebird/js/release/method.js:39:29)
at Object.wrapChildPromise (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@packages/server/lib/plugins/util.js:58:23)
at RunPlugins.execute (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@packages/server/lib/plugins/child/run_plugins.js:164:21)
at EventEmitter. (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@packages/server/lib/plugins/child/run_plugins.js:56:12)
at EventEmitter.emit (node:events:517:28)
at EventEmitter.emit (node:domain:489:12)
at process. (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@packages/server/lib/plugins/util.js:33:22)
at process.emit (node:events:517:28)
at process.emit (node:domain:489:12)
at process.emit.sharedData.processEmitHook.installedValue [as emit] (/home/runner/.cache/Cypress/13.3.1/Cypress/resources/app/node_modules/@cspotcode/source-map-support/source-map-support.js:745:40)
at emit (node:internal/child_process:944:14)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
error: Cannot read properties of undefined (reading 'filter')
TypeError: Cannot read properties of undefined (reading 'filter')
at onTestResults (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/cypress-repeat/index.js:110:14)
at tryCatcher (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromise0 (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:729:18)
at Promise._fulfill (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:673:18)
at Promise._resolveCallback (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:466:57)
at Promise._settlePromiseFromHandler (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:559:17)
at Promise._settlePromise (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromise0 (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:729:18)
at Promise._fulfill (/home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/promise.js:673:18)
at /home/runner/work/solid-bassoon/solid-bassoon/node_modules/bluebird/js/release/nodeback.js:42:21
at /home/runner/work/solid-bassoon/solid-bassoon/node_modules/universalify/index.js:22:54
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Fork and enable the GitHub Action in the solid-bassoon minimum reproducible example, then inspect cypress-repeat/index.js at onTestResults and cypress-split/src/index.js at the after:run handler. Compare the missing spec-result and summary errors, and confirm the workflow completes without these failures when using --until-passes --rerun-failed-only.

Written by the indexing model from the issue text.

Assessment

Tech stack
cypress, github-actions, javascript, node.js
Domain
ci-cd, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.