'use strict';
require('../common');
const assert = require('assert');
const active = require('timers').active;

// active() should create timers for these
var legitTimers = [
  { _idleTimeout: 0 },
  { _idleTimeout: 1 }
];

legitTimers.forEach(function(legit) {
  const savedTimeout = legit._idleTimeout;
  active(legit);
  // active() should mutate these objects
  assert(legit._idleTimeout === savedTimeout);
  assert(Number.isInteger(legit._idleStart));
  assert(legit._idleNext);
  assert(legit._idlePrev);
});


// active() should not create a timer for these
var bogusTimers = [
  { _idleTimeout: -1 },
  { _idleTimeout: undefined },
];

bogusTimers.forEach(function(bogus) {
  const savedTimeout = bogus._idleTimeout;
  active(bogus);
  // active() should not mutate these objects
  assert.deepStrictEqual(bogus, {_idleTimeout: savedTimeout});
});
