🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

groundhog-day

Package Overview
Dependencies
Maintainers
0
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

groundhog-day

A stupidly simple library for controlling time

latest
Source
npmnpm
Version
3.0.0
Version published
Maintainers
0
Created
Source

groundhog-day

groundhog-day is a wrapper around Date.now() with real and fake implementations. The real implementation returns the current time, the fake implementation returns a fixed time (defaults to Groundhog day). Use the real implementation in your production code, but inject the fake implementation in tests for predictable results.

NPM version NPM downloads Node.js CI Code Climate Test Coverage

TL;DR

1. Use a fake clock in tests

const { ok, equal } = require('assert');
const { fake: clock } = require('groundhog-day');
const request = require('request');
const Server = require('../server');

describe('Server', () => {

  let server

  before((done) => {
    server = new Server(clock);
    server.start(done);
  });

  after((done) => {
    server.stop(done);
  });

  it('should set last modified header', (done) => {
    request.get('http://localhost/demo', (err, res, body) => {
      ok(err);
      equal(res.headers['last-modified'], 'Tue, 2 Feb 2016 11:00:00 GMT');  // Groundhog Day
    })
  })
})

2. Use a real clock in production

const Server = require('./server')
const { real: clock } = require('groundhog-day');
new Server(clock).start(err => {
  if (err) process.exit(1)
  console.log('Listening')
})

Fixing Time

You can configure the fixed time returned by the fake clock in any of the following ways:

By specifying the number of milliseconds

const { fake: clock } = require('groundhog-day');
clock.fix(1469563181761);

By specifying a date instance

const { fake: clock } = require('groundhog-day');
clock.fix(new Date(1469563181761));

By specifying a date string

const { fake: clock } = require('groundhog-day');
clock.fix(new Date('2016-07-26T19:59:41.761Z'))

Keywords

Fake

FAQs

Package last updated on 19 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts