wrap

Improve this doc

Yield the object passed into .wrap().

Syntax

cy.wrap(subject)
cy.wrap(subject, options)

Usage

Correct Usage

cy.wrap({ name: 'Jane Lane' })

Arguments

subject (Object)

An object to be yielded.

options (Object)

Pass in an options object to change the default behavior of cy.wrap().

Option Default Description
log true Displays the command in the Command log
timeout defaultCommandTimeout Time to wait for cy.wrap() to resolve before timing out

Yields

  • cy.wrap() yields the object it was called with.

Examples

Objects

Invokes the function on the subject in wrap and returns the new value.

const getName = () => {
  return 'Jane Lane'
}

cy.wrap({ name: getName }).invoke('name').should('eq', 'Jane Lane') // true

Elements

Wrap elements to continue executing commands

cy.get('form').within(($form) => {
  // ... more commands

  cy.wrap($form).should('have.class', 'form-container')
})

Conditionally wrap elements

cy
  .get('button')
  .then(($button) => {
    // $button is a wrapped jQuery element
    if ($button.someMethod() === 'something') {
      // wrap this element so we can
      // use cypress commands on it
      cy.wrap($button).click()
    } else {
      // do something else
    }
  })

Rules

Requirements

  • cy.wrap() requires being chained off of cy.

Assertions

  • cy.wrap() will automatically retry itself until assertions you've chained all pass.

Timeouts

  • cy.wrap() can time out waiting for assertions you've added to pass.

Command Log

Make assertions about object

cy.wrap({ amount: 10 })
  .should('have.property', 'amount')
  .and('eq', 10)

The commands above will display in the Command Log as:

Command Log

When clicking on the wrap command within the command log, the console outputs the following:

Console Log

See also