var common = require('../common'); var assert = common.assert; var retry = require(common.dir.lib + '/retry'); (function testDefaultValues() { var timeouts = retry.timeouts(); assert.equal(timeouts.length, 10); assert.equal(timeouts[0], 1000); assert.equal(timeouts[1], 2000); assert.equal(timeouts[2], 4000); })(); (function testDefaultValuesWithRandomize() { var minTimeout = 5000; var timeouts = retry.timeouts({ minTimeout: minTimeout, randomize: true }); assert.equal(timeouts.length, 10); assert.ok(timeouts[0] > minTimeout); assert.ok(timeouts[1] > timeouts[0]); assert.ok(timeouts[2] > timeouts[1]); })(); (function testPassedTimeoutsAreUsed() { var timeoutsArray = [1000, 2000, 3000]; var timeouts = retry.timeouts(timeoutsArray); assert.deepEqual(timeouts, timeoutsArray); assert.notStrictEqual(timeouts, timeoutsArray); })(); (function testTimeoutsAreWithinBoundaries() { var minTimeout = 1000; var maxTimeout = 10000; var timeouts = retry.timeouts({ minTimeout: minTimeout, maxTimeout: maxTimeout }); for (var i = 0; i < timeouts; i++) { assert.ok(timeouts[i] >= minTimeout); assert.ok(timeouts[i] <= maxTimeout); } })(); (function testTimeoutsAreIncremental() { var timeouts = retry.timeouts(); var lastTimeout = timeouts[0]; for (var i = 0; i < timeouts; i++) { assert.ok(timeouts[i] > lastTimeout); lastTimeout = timeouts[i]; } })(); (function testTimeoutsAreIncrementalForFactorsLessThanOne() { var timeouts = retry.timeouts({ retries: 3, factor: 0.5 }); var expected = [250, 500, 1000]; assert.deepEqual(expected, timeouts); })(); (function testRetries() { var timeouts = retry.timeouts({retries: 2}); assert.strictEqual(timeouts.length, 2); })();