time-bandit

0.1.2 • Public • Published

Time Bandit

Time Bandit makes it simpler to test your time-dependent code.

Build Status

Installation

npm install time-bandit or yarn add time-bandit

Example

const { travel, freeze, unfreeze, hours, minutes } = require('time-bandit')
 
// Travel 20 hours and 30 minutes into the future
travel(hours(20) + minutes(30))
 
// Restore date
unfreeze()

API

travel(duration: number): void

Travel the given duration of milliseconds and freeze the time.

const timestamp = Date.now()
 
travel(1000)
Date.now() - timestamp // 1000
 
travel(-2000)
Date.now() - timestamp // -1000

freeze(...args): void

Freeze date and time at the current timestamp.

freeze(1985, 9, 26, 9, 0, 0)
new Date() // Sat Oct 26 1985 09:00:00
 
freeze(1445405280000)
new Date() // Wed Oct 21 2015 07:28:00
Date.now() === 1445405280000 // true

unfreeze(): void

Restore the native Date object.

const NativeDate = Date;
 
freeze()
Date === NativeDate // false
 
unfreeze()
Date === NativeDate // true

isFrozen(): boolean

Returns whether the Date object is mocked.

freeze()
isFrozen() // true
 
unfreeze()
isFrozen() // false

seconds(amount: number): number

Returns the given amount of seconds in milliseconds.

seconds(1) // 1000
seconds(-5) // -5000
 
travel(seconds(-5)) // Travel 5 seconds back in time
travel(seconds(50)) // Travel 50 seconds into the future

minutes(amount: number): number

Returns the given amount of minutes in milliseconds.

minutes(1) // 60,000
seconds(-5) // -300,000
 
travel(minutes(-5)) // Travel 5 minutes back in time
travel(minutes(50)) // Travel 50 minutes into the future

hours(amount: number): number

Returns the given amount of hours in milliseconds.

hours(1) // 3,600,000
hours(-2) // -7,200,000
 
travel(hours(-1)) // Travel 1 hour back in time
travel(hours(23)) // Travel 23 hours into the future

days(amount: number): number

Returns the given amount of days in milliseconds.

days(1) // 86,400,000
days(-1) // -86,400,000
 
travel(days(-1)) // Travel 1 day back in time
travel(days(10)) // Travel 10 days into the future

Readme

Keywords

Package Sidebar

Install

npm i time-bandit

Weekly Downloads

0

Version

0.1.2

License

MIT

Unpacked Size

8.37 kB

Total Files

7

Last publish

Collaborators

  • envelope