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