2.8 KiB
title, comments, description
| title | comments | description |
|---|---|---|
| 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
.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:
When clicking on the tick command within the command log, the console outputs the following: