UNPKG

eslint-plugin-cypress

Version:
52 lines (38 loc) 1.34 kB
# Disallow using `async`/`await` in Cypress `before` methods (`cypress/no-async-before`) <!-- end auto-generated rule header --> Cypress commands that return a promise may cause side effects in `before`/`beforeEach` hooks, possibly causing unexpected behavior. ## Rule Details This rule disallows using `async` `before` and `beforeEach` functions. Examples of **incorrect** code for this rule: ```js describe('my feature', () => { before('my test case', async () => { await cy.get('.myClass') // other operations }) }) ``` ```js describe('my feature', () => { before('my test case', async () => { cy .get('.myClass') .click() await someAsyncFunction() }) }) ``` Examples of **correct** code for this rule: ```js describe('my feature', () => { before('my test case', () => { cy.get('.myClass') // other operations }) }) ``` ## When Not To Use It If there are genuine use-cases for using `async/await` in your `before` hooks 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)