Cypress.ensure
Cypress.ensure
is a collection of helper methods for making assertions. They
are mostly useful when writing custom queries
or custom commands.
Most functions on Cypress.ensure
accept a
subject
argument, check an assertion, and throw an error if the assertion fails. These
functions have no return value.
Syntax​
// Type of argument
Cypress.ensure.isType(subject, type, commandName, cy)​
Cypress.ensure.isElement(subject, commandName, cy)​
Cypress.ensure.isWindow(subject, commandName, cy)
Cypress.ensure.isDocument(subject, commandName, cy)​
// State of DOM element
Cypress.ensure.isAttached(subject, commandName, cy)​
Cypress.ensure.isNotDisabled(subject, commandName)​
Cypress.ensure.isNotHiddenByAncestors(subject, commandName)​
Cypress.ensure.isNotReadonly(subject, commandName)​
Cypress.ensure.isScrollable(subject, commandName)​
Cypress.ensure.isStrictlyVisible(subject, commandName)​
Cypress.ensure.isVisible(subject, commandName)​
caution
Many of these functions accept an optional onFail
argument. This is a legacy
feature used to customize the thrown error, and may be removed in a future
release; we recommend against relying on it. If you need more control over the
error thrown, write your own ensure
function instead.
Usage​
Correct Usage
Cypress.Commands.addQuery('getChildById', function (id) {
return (subject) => {
// Verify that the subject is an element, document, or window object
Cypress.ensure.isType(
subject,
['element', 'document', 'window'],
'getChildById',
cy
)
return $$(`#${id}`, subject)
}
})
const queryName = 'verifyElementActionable'
Cypress.Commands.addQuery(queryName, function (...args) {
return (subject) => {
// Verify that the subject fulfills a variety of conditions
Cypress.ensure.isElement(subject, queryName, cy)
Cypress.ensure.isVisible(subject, queryName, cy)
Cypress.ensure.isNotDisabled(subject, queryName, cy)
Cypress.ensure.isNotReadonly(subject, queryName, cy)
return subject
}
})
See also​
- "Custom Queries" contains more information
about writing custom queries, which is the main use-case for the
ensure
functions.