Files
cypress/docs/source/api/commands/tick.md
2017-06-09 14:04:20 -04:00

2.7 KiB

title, comments
title comments
tick true

Move time after overriding a native time function with cy.clock().

{% note warning %} cy.clock must be called before cy.tick in order to override native time functions first. {% endnote %}

Syntax

cy.tick(milliseconds)

Usage

cy.tick() cannot be chained off any other cy commands, so should be chained off of cy for clarity.

{% fa fa-check-circle green %} Valid Usage

cy.tick(500)

Arguments

{% fa fa-angle-right %} milliseconds (Number)

The number of milliseconds to move the clock. Any timers within the affected range of time will be called.

Yields

cy.tick() yields a clock object with the following methods:

  • clock.tick(milliseconds)

    Move the clock a number of milliseconds. Any timers within the affected range of time will be called.

  • clock.restore()

    Restore all overridden native functions. This is automatically called between tests, so should not generally be needed.

You can also access the clock object via this.clock in a .then() callback.

Examples

Move time

Create a clock and move time to trigger a setTimeout

// app code loaded by index.html
window.addIntro = () => {
  setTimeout(() => {
    document.getElementById('#header').textContent = 'Hello, World'
  }, 500)
}
cy.clock()
cy.visit('/index.html')
cy.window().invoke('addIntro')
cy.tick(500)
cy.get('#header').should('have.text', 'Hello, World')

Using cy.clock and cy.tick

{% note info %} Check out our example recipe testing spying, stubbing and time {% endnote %}

Command Log

Create a clock and tick it 1 second

cy.clock()
cy.tick(1000)

The command above will display in the command log as:

screen shot of command log

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

screen shot of console output

See also