eslint-plugin-cypress
Version:
An ESLint plugin for projects using Cypress
55 lines (40 loc) ⢠1.59 kB
Markdown
is enabled in the ā
`recommended` config.
<!-- end auto-generated rule header -->
Cypress tests [that return a promise will error](https://docs.cypress.io/guides/references/error-messages.html#Cypress-detected-that-you-returned-a-promise-from-a-command-while-also-invoking-one-or-more-cy-commands-in-that-promise) and cannot run successfully.
An `async` function returns a promise under the hood, so a test using an `async` function will also error.
This rule disallows using `async` test functions.
Examples of **incorrect** code for this rule:
```js
describe('my feature', () => {
it('my test case', async () => {
await cy.get('.myClass')
// other operations
})
})
```
```js
describe('my feature', () => {
it('my test case', async () => {
cy
.get('.myClass')
.click()
await someAsyncFunction()
})
})
```
Examples of **correct** code for this rule:
```js
describe('my feature', () => {
it('my test case', () => {
cy.get('.myClass')
// other operations
})
})
```
If there are genuine use-cases for using `async/await` in your test cases then you may not want to include this rule (or at least demote it to a warning).
## Further Reading
- [Mixing Async and Sync code](https://on.cypress.io/guides/core-concepts/introduction-to-cypress#Mixing-Async-and-Sync-code)
- [Commands Are Asynchronous](https://on.cypress.io/guides/core-concepts/introduction-to-cypress.html#Commands-Are-Asynchronous)
š¼ This rule