a make believe clock for tests involving time
npm install @tapjs/clockA deterministic mock clock for use in tests involving time.
A mock clock will be available at t.clock. If you callt.clock.enter(), it will monkey-patch all the globals to be
tied to the deterministic mock clock implementation. When the
test completes, the patched globals will return to their previous
state automatically.
Add the plugin by running:
```
tap plugin add @tapjs/clock
Then, you can use it by accessing the t.clock object on anyClock
test, which is an instance of the
class.
For example:
`js`
t.test('some timers and such', async t => {
t.clock.enter()
let timeoutFired = false
setTimeout(() => (timeoutFired = true), 100)
t.clock.advance(50)
t.equal(timeoutFired, false)
t.clock.advance(50)
t.equal(timeoutFired, true)
})
If you aren't using the @tapjs/after plugin, then you'll havet.clock.exit()` at some point to restore the global
to call
timers to their previous states if you enter it.
See clock-mock for full
API details.