@ehyland/cypress-testing-library
v0.0.0-fix-types
Published
Simple and complete custom Cypress commands and utilities that encourage good testing practices.
Downloads
11
Maintainers
Readme
The problem
You want to use dom-testing-library
methods in your Cypress tests.
This solution
This allows you to use all the useful dom-testing-library
methods in your tests.
Table of Contents
Installation
This module is distributed via npm which is bundled with node and
should be installed as one of your project's devDependencies
:
npm install --save-dev cypress-testing-library
Usage
cypress-testing-library
extends Cypress' cy
command.
Add this line to your project's cypress/support/commands.js
:
import 'cypress-testing-library/add-commands';
You can now use all of dom-testing-library
's getBy
, getAllBy
, queryBy
and queryAllBy
commands. See dom-testing-library
repo for reference
To show some simple examples (from cypress/integration/commands.spec.js):
cy.getAllByText('Jackie Chan').click()
cy.queryByText('Button Text').should('exist')
cy.queryByText('Non-existing Button Text').should('not.exist')
cy.queryByLabelText('Label text', {timeout: 7000}).should('exist')
cy.get('form').within(() => {
cy.getByText('Button Text').should('exist')
})
cy.get('form').then(subject => {
cy.getByText('Button Text', {container: subject}).should('exist')
})
cypress-testing-library
supports both jQuery elements and DOM nodes. This is necessary because Cypress uses jQuery elements, while dom-testing-library
expects DOM nodes. When you pass a jQuery element as container
, it will get the first DOM node from the collection and use that as the container
parameter for the dom-testing-library
functions.
Other Solutions
I'm not aware of any, if you are please make a pull request and add it here!
Contributors
Thanks goes to these people (emoji key):
| Kent C. Dodds💻 📖 🚇 ⚠️ | Ivan Babak💻 🤔 | Łukasz Gandecki💻 ⚠️ | Peter Kamps💻 📖 🤔 ⚠️ | | :---: | :---: | :---: | :---: |
This project follows the all-contributors specification. Contributions of any kind welcome!
LICENSE
MIT