A Cypress plugin and CLI tool which automatically adds and enables IntelliSense for your custom commands!
The process for adding Cypress custom commands to test suites is quite manual and involves bloating projects with too much boilerplate code.
Additionally, custom commands are hard to write because we don't get IntelliSense or the ease of navigating to the command's definition.
The cypress-codegen
plugin will enable IntelliSense and "go to definition" shortcuts, and will also generate boilerplate for adding custom commands to Cypress!
npm i --save-dev cypress-codegen
- Add the required plugin code to
cypress.config.ts
like so:
import { cypressCodegen } from "cypress-codegen";
import { defineConfig } from "cypress";
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
cypressCodegen(on, config);
return config;
},
},
component: {
setupNodeEvents(on, config) {
cypressCodegen(on, config);
return config;
},
devServer: {
framework: "react",
bundler: "vite",
},
},
});
- Put all of your custom commands in
cypress/commands
as regular functions. - Run the
cypress-codegen
CLI command, or just open Cypress! - You will notice that the Cypress support file(s) are updated to automatically import all your custom commands!
Check out this project's cypress
directory for a generic example!
If you want to create custom commands that are meant to be scoped to a previous command's result, just add those separately. See the Cypress docs for more details.
cypress-codegen
will attempt to read your prettierrc
config by default, but will use the prettier defaults otherwise.
You can run cypress-codegen
in your terminal to generate types for your Cypress project!
Pass the --testingType
option to run it for a particular testing type, component
or e2e
(defaults to e2e
).
Currently, only the default supportFile
config options are supported. See the docs for more details.
Also, JavaScript usage is not supported. Use TypeScript, it's better!