| 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); |
| })(); |