You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 31, 2023. It is now read-only.
When using cypress-terminal-report with enableExtendedCollector enabled and @cypress/skip-test, the test will fail with a CypressError if the skip check is done in a before hook.
Cypress detected that you returned a promise from a command while also invoking one or more cy commands in that promise.
The command that returned the promise was:
> cy.wait()
The cy command you invoked inside the promise was:
> cy.wait()
Because Cypress commands are already promise-like, you don't need to wrap them or return your own promise.
Cypress will resolve your command with whatever the final Cypress command yields.
The reason this is an error instead of a warning is because Cypress internally queues commands serially whereas Promises execute as soon as they are invoked. Attempting to reconcile this would prevent Cypress from ever resolving.
Because this error occurred during a after all hook we are skipping all of the remaining tests.[Learn more](https://on.cypress.io/returning-promise-and-commands-in-another-command)
The text was updated successfully, but these errors were encountered:
Owner of cypress-terminal-report shared this:
Unfortunately this plugin cannot do much to prevent this. We already have tests supporting dynamic skipping and they are all passing ok.
The issue is with @cypress/skip-test, as they are violating the queue nature of cypress. The following change in that plugin could fix your issue. Open an issue on that project or use patch-package.
diff --git a/node_modules/@cypress/skip-test/index.js b/node_modules/@cypress/skip-test/index.js
index 03bf1c6..359f21d 100644
--- a/node_modules/@cypress/skip-test/index.js+++ b/node_modules/@cypress/skip-test/index.js@@ -71,8 +71,10 @@ const isOn = (name) => {
// @ts-ignore "cy.state" is not in the "cy" type
const getMochaContext = () => cy.state('runnable').ctx
const skip = () => {
- const ctx = getMochaContext()- return ctx.skip()+ cy.wrap({}).then(() => {+ const ctx = getMochaContext()+ return ctx.skip()+ });
}
const isPlatform = (name) => ['win32', 'darwin', 'linux'].includes(name)
Description
When using
cypress-terminal-report
withenableExtendedCollector
enabled and@cypress/skip-test
, the test will fail with a CypressError if the skip check is done in abefore
hook.The error below is triggered by:
https://github.com/archfz/cypress-terminal-report/blob/a785736b6c1c2ebe56763ea332886dfef12b51a1/src/collector/LogCollectExtendedControl.js#L76
Reproducible Example
Run the spec test until you hit the error (sometimes it runs without an error).
https://github.com/samtsai/terminal-report-and-skip-tests-bug
Hits this CypressError:
The text was updated successfully, but these errors were encountered: