Learn Cypress testing with Amir Rustamzadeh in Melbourne, Australia

Register for the Workshop

Intelligent Code Completion

Improve this doc

Writing Tests

Features

IntelliSense is available for Cypress. It offers intelligent code suggestions directly in your IDE while writing tests. A typical IntelliSense popup shows command definition, a code example and a link to the full documentation page.

Autocomplete while typing Cypress commands

Signature help when writing and hovering on Cypress commands

Autocomplete while typing assertion chains, including only showing DOM assertions if testing on a DOM element.

Set up in your Dev Environment

This document assumes you have installed Cypress.

Cypress comes with TypeScript type declarations included. Modern text editors can use these type declarations to show IntelliSense inside spec files.

Triple slash directives

The simplest way to see IntelliSense when typing a Cypress command or assertion is to add a triple-slash directive to the head of your JavaScript or TypeScript testing file. This will turn the IntelliSense on a per file basis. Just copy the comment line below and paste it into your spec file.

/// <reference types="Cypress" />

If you write custom commands and provide TypeScript definitions for them, you can use the triple slash directives to show IntelliSense, even if your project uses only JavaScript. For example, if your custom commands are written in cypress/support/commands.js and you describe them in cypress/support/index.d.ts use:

// type definitions for Cypress object "cy"
/// <reference types="cypress" />

// type definitions for custom commands like "createDefaultTodos"
/// <reference types="../support" />

See the cypress-example-todomvc repository for a working example.

If the triple slash directive does not work, please refer to your code editor in TypeScript’s Editor Support doc and follow the instructions for your IDE to get TypeScript support and intelligent code completion configured in your developer environment first. TypeScript support is built in for Visual Studio Code, Visual Studio, and WebStorm - all other editors require extra setup.

Reference type declarations via tsconfig

Adding a tsconfig.json inside your cypress folder with the following configuration should get intelligent code completion working.

{
  "compilerOptions": {
    "allowJs": true,
    "baseUrl": "../node_modules",
    "types": [
      "cypress"
    ]
  },
  "include": [
    "**/*.*"
  ]
}

Configuration

Features:

When editing the cypress.json file, you can use our json schema file to get intelligent tooltips in your IDE for each configuration property.

Property help when writing and hovering on configuration keys

Properties list with intelligent defaults

Set up in your Dev Environment:

Intelligent code completion using JSON schemas is supported by default in Visual Studio Code and Visual Studio. All other editors will require extra configuration or plugins for JSON schema support.

To set up in Visual Studio Code you can open Preferences / Settings / User Settings and add the json.schemas property.

{
  "json.schemas": [
    {
      "fileMatch": [
        "cypress.json"
      ],
      "url": "https://on.cypress.io/cypress.schema.json"
    }
  ]
}

See also