Member-only story
Mocking the time: Using Timers in Jest
A great Unit Test covers the 3 R’s; Repeatable, Reliable, Resilient. One thing that does not help with achieving the 3 R’s are test cases that only work at a certain time. Jest has a way to mock timers in tests. In this article we’re going to look at how 3 of these methods work.
The Code
Below is the code that we’re going to write tests for. This function takes in a “days” parameter and calculates the Unix Epoch time (the milliseconds that have elapsed since 00:00:00 UTC on 1 January 1970).
Line 1: sets a parameter to a default value of 0.
Line 4: Date.parse()
will always return Unix Epoch time. In this case we are passing a human-readable date and adding a certain amount of time to it (daysToAdd
).
Below is the code for the Unit Test. We’ll walk through it line by line, and discuss some interesting points.