1var common = require('../common'); 2var assert = common.assert; 3var retry = require(common.dir.lib + '/retry'); 4 5(function testDefaultValues() { 6 var timeouts = retry.timeouts(); 7 8 assert.equal(timeouts.length, 10); 9 assert.equal(timeouts[0], 1000); 10 assert.equal(timeouts[1], 2000); 11 assert.equal(timeouts[2], 4000); 12})(); 13 14(function testDefaultValuesWithRandomize() { 15 var minTimeout = 5000; 16 var timeouts = retry.timeouts({ 17 minTimeout: minTimeout, 18 randomize: true 19 }); 20 21 assert.equal(timeouts.length, 10); 22 assert.ok(timeouts[0] > minTimeout); 23 assert.ok(timeouts[1] > timeouts[0]); 24 assert.ok(timeouts[2] > timeouts[1]); 25})(); 26 27(function testPassedTimeoutsAreUsed() { 28 var timeoutsArray = [1000, 2000, 3000]; 29 var timeouts = retry.timeouts(timeoutsArray); 30 assert.deepEqual(timeouts, timeoutsArray); 31 assert.notStrictEqual(timeouts, timeoutsArray); 32})(); 33 34(function testTimeoutsAreWithinBoundaries() { 35 var minTimeout = 1000; 36 var maxTimeout = 10000; 37 var timeouts = retry.timeouts({ 38 minTimeout: minTimeout, 39 maxTimeout: maxTimeout 40 }); 41 for (var i = 0; i < timeouts; i++) { 42 assert.ok(timeouts[i] >= minTimeout); 43 assert.ok(timeouts[i] <= maxTimeout); 44 } 45})(); 46 47(function testTimeoutsAreIncremental() { 48 var timeouts = retry.timeouts(); 49 var lastTimeout = timeouts[0]; 50 for (var i = 0; i < timeouts; i++) { 51 assert.ok(timeouts[i] > lastTimeout); 52 lastTimeout = timeouts[i]; 53 } 54})(); 55 56(function testTimeoutsAreIncrementalForFactorsLessThanOne() { 57 var timeouts = retry.timeouts({ 58 retries: 3, 59 factor: 0.5 60 }); 61 62 var expected = [250, 500, 1000]; 63 assert.deepEqual(expected, timeouts); 64})(); 65 66(function testRetries() { 67 var timeouts = retry.timeouts({retries: 2}); 68 assert.strictEqual(timeouts.length, 2); 69})(); 70