JSPM

  • Created
  • Published
  • Downloads 3697962
  • Score
    100M100P100Q217181F
  • License MIT

An ESLint plugin for projects using Cypress

Package Exports

  • eslint-plugin-cypress
  • eslint-plugin-cypress/lib/config/recommended

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-cypress) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Cypress ESLint Plugin

An ESLint plugin for your Cypress tests.

Specifies globals for Cypress cy, Cypress, browser and mocha globals.

Installation

npm install eslint-plugin-cypress --save-dev

Usage

Add an .eslintrc.json file to your cypress directory with the following:

// my-project/cypress/.eslintrc.json

{
  "plugins": [
    "cypress"
  ],
  "extends": [
    "plugin:cypress/recommended"
  ],
  "env": {
    "cypress/globals": true
  }
}

Rules

Rules are grouped by category to help you understand their purpose.

Rules with a check mark (✅) are enabled by default while using the plugin:cypress/recommended config.

The --fix option on the command line automatically fixes problems reported by rules which have a wrench (🔧) below.

Possible Errors

Rule ID Description
no-assigning-return-values Prevent assigning return values of cy calls
no-unnecessary-waiting Prevent waiting for arbitrary time periods

Chai and no-unused-expressions

Using an assertion such as expect(value).to.be.true can fail the ESLint rule no-unused-expressions even though it's not an error in this case. To fix this, you can install and use eslint-plugin-chai-friendly.

npm install --save-dev eslint-plugin-chai-friendly

In your .eslintrc.json:

{
  "plugins": [
    "cypress",
    "chai-friendly"
  ],
  "rules": {
    "no-unused-expressions": 0,
    "chai-friendly/no-unused-expressions": 2
  }
}

Contribution Guide

To add a new rule:

  • Fork and clone this repository
  • Generate a new rule (a yeoman generator is available)
  • Run yarn start or npm start
  • Write test scenarios then implement logic
  • Describe the rule in the generated docs file
  • Make sure all tests are passing
  • Add the rule to this README
  • Create a PR