Skip to content

Utilities library for WordPress E2E testing in the Cypress environment

License

Notifications You must be signed in to change notification settings

10up/cypress-wp-utils

Repository files navigation

Cypress Utilities for WordPress

Utilities library for WordPress E2E testing in the Cypress environment.

Support Level WordPress latest Release Version WordPress minimum Test PRs CodeQL MIT License

Prerequisites

This library requires Cypress. Use @10up/cypress-wp-setup to set up Cypress automatically, including this library. If running tests against WordPress 6.3, you'll probably need to set chromeWebSecurity: false in your Cypress config file. This allows Cypress to properly interact with the iframed Block Editor.

Installation

npm install @10up/cypress-wp-utils --save-dev

Usage

Import the libary in support/index.js file:

// tests/cypress/support/index.js
import '@10up/cypress-wp-utils';

Documentation for commands can be found at https://10up.github.io/cypress-wp-utils/.

IntelliSense and code completion for Cypress commands

Add a tsconfig.json file into the cypress folder to enable code completion for both Cypress built-in commands and commands from this library:

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

Adding a new command

This project uses hygen to scaffold new commands to reduce the effort of manually importing and registering new commands:

$ npx hygen cypress-command new customCommand

Loaded templates: _templates
      added: src/commands/custom-command.ts
      inject: src/index.ts
      inject: src/index.ts
      inject: src/index.ts

Install the library locally

npm i -D path/to/the/library

Test against every WordPress major release

Every incoming pull request will automatically run tests against:

To run tests locally against every WordPress major release since minimum support (5.7) to the latest nightly build (e.g., 6.4-alpha) use this script:

./run-all-cores.sh

It has optional parameter -s to specify only one test suite to run:

./run-all-cores.sh -s tests/cypress/intergation/login.test.js

Contributing

Please read CODE_OF_CONDUCT.md for details on our code of conduct, CONTRIBUTING.md for details on the process for submitting pull requests to us, and CREDITS.md for a list of maintainers, contributors, and libraries used in this repository.

Support Level

Beta: This project is quite new and we're not sure what our ongoing support level for this will be. Bug reports, feature requests, questions, and pull requests are welcome. If you like this project please let us know, but be cautious using this in a Production environment!

Like what you see?

Work with us