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:
When clicking on the tick command within the command log, the console outputs the following:
See also
- {% url
cy.clock()clock %} - Guide: Stubs, Spies and Clocks
- Recipe: Controlling Behavior with Spies, Stubs, and Clocks
- spy
- stub