{
  "doc": {
    "id": "api/cypress-api/ensure",
    "title": "Cypress.ensure | Cypress Documentation",
    "description": "Cypress.ensure is a collection of helper methods for making assertions. They are mostly useful when writing custom queries or custom commands.",
    "section": "api",
    "source_path": "/llm/markdown/api/cypress-api/ensure.md",
    "version": "3cf5b86b3403f604bdf7f3e35025c3bc3865e02c",
    "updated_at": "2026-05-07T17:44:31.931Z",
    "headings": [
      {
        "id": "api/cypress-api/ensure#cypress-ensure",
        "text": "Cypress.ensure",
        "level": 1
      },
      {
        "id": "api/cypress-api/ensure#syntax",
        "text": "Syntax",
        "level": 2
      },
      {
        "id": "api/cypress-api/ensure#usage",
        "text": "Usage",
        "level": 3
      },
      {
        "id": "api/cypress-api/ensure#see-also",
        "text": "See also",
        "level": 2
      }
    ]
  },
  "chunks": [
    {
      "id": "api/cypress-api/ensure#syntax",
      "doc_id": "api/cypress-api/ensure",
      "heading": "Syntax",
      "heading_level": 2,
      "content_markdown": "## Syntax\n\n```\n// Type of argumentCypress.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 elementCypress.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)​\n```\n\nMany 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.\n\n### Usage\n\n**Correct Usage**\n\n```\nCypress.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  }})\n```\n",
      "section": "api",
      "anchors": [
        "syntax"
      ],
      "path": "/llm/json/chunked/api/cypress-api/ensure.json",
      "token_estimate": 201
    },
    {
      "id": "api/cypress-api/ensure#usage",
      "doc_id": "api/cypress-api/ensure",
      "heading": "Usage",
      "heading_level": 3,
      "content_markdown": "### Usage\n\n**Correct Usage**\n\n```\nCypress.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  }})\n```\n",
      "section": "api",
      "anchors": [
        "usage"
      ],
      "path": "/llm/json/chunked/api/cypress-api/ensure.json",
      "token_estimate": 97
    }
  ]
}