testdouble-timers

0.1.1 • Public • Published

NPM Package Travis Dependency Status

testdouble-timers

Fake timers API for testdouble.js.

Install

npm install --save-dev testdouble-timers

Usage

import td from 'testdouble';
import timers from 'testdouble-timers';
 
// Install fake timers API to testdouble
timers.use(td);
 
describe('important scenario', () => {
  afterEach(() => {
    // Recommended way to restore replaced methods.
    td.reset();
  });
 
  it('does something later', () => {
    // Replace global timers
    const clock = td.timers();
 
    obj.doLater(500);
 
    assert(typeof obj.result === 'undefined');
 
    // Forward 510 msec
    clock.tick(510);
 
    assert(obj.result === 'hello');
 
    // No need to call clock.restore() here
  });
});

API

testdouble-timers has Sinon.JS compatible API.

td.timers([now])

td.timers(method1, method2, ...)

td.timers(now, method1, method2, ...)

Creates a new clock and replaces all methods if you call without any parameters.

now should be Date object or milliseconds since UNIX epoch. method1, method2, ... are method names you want to replace. Here is a list of method names you can specify.

List of available method names

  • setTimeout
  • clearTimeout
  • setImmediate
  • clearImmediate
  • setInterval
  • clearInterval
  • Date

clock.tick(duration)

Forwards the clock duration milliseconds.

clock.restore()

Restores replaced methods manually.

NOTE: In most cases, you don't need to use this method. Please use td.reset() like the usage as written above.

Development

Run test

npm test

Acknowledgment

The API and arguments handling are written based on Sinon.JS.

Changelog

See the Releases page on GitHub.

License

MIT

Author

Yuki Kodama / @kuy

Package Sidebar

Install

npm i testdouble-timers

Weekly Downloads

588

Version

0.1.1

License

MIT

Last publish

Collaborators

  • netkuy