| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | var common = require('../common');var assert = common.assert;var fake = common.fake.create();var retry = require(common.dir.lib + '/retry');function getLib() {  return {    fn1: function() {},    fn2: function() {},    fn3: function() {}  };}(function wrapAll() {  var lib = getLib();  retry.wrap(lib);  assert.equal(lib.fn1.name, 'bound retryWrapper');  assert.equal(lib.fn2.name, 'bound retryWrapper');  assert.equal(lib.fn3.name, 'bound retryWrapper');}());(function wrapAllPassOptions() {  var lib = getLib();  retry.wrap(lib, {retries: 2});  assert.equal(lib.fn1.name, 'bound retryWrapper');  assert.equal(lib.fn2.name, 'bound retryWrapper');  assert.equal(lib.fn3.name, 'bound retryWrapper');  assert.equal(lib.fn1.options.retries, 2);  assert.equal(lib.fn2.options.retries, 2);  assert.equal(lib.fn3.options.retries, 2);}());(function wrapDefined() {  var lib = getLib();  retry.wrap(lib, ['fn2', 'fn3']);  assert.notEqual(lib.fn1.name, 'bound retryWrapper');  assert.equal(lib.fn2.name, 'bound retryWrapper');  assert.equal(lib.fn3.name, 'bound retryWrapper');}());(function wrapDefinedAndPassOptions() {  var lib = getLib();  retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']);  assert.notEqual(lib.fn1.name, 'bound retryWrapper');  assert.equal(lib.fn2.name, 'bound retryWrapper');  assert.equal(lib.fn3.name, 'bound retryWrapper');  assert.equal(lib.fn2.options.retries, 2);  assert.equal(lib.fn3.options.retries, 2);}());(function runWrappedWithoutError() {  var callbackCalled;  var lib = {method: function(a, b, callback) {    assert.equal(a, 1);    assert.equal(b, 2);    assert.equal(typeof callback, 'function');    callback();  }};  retry.wrap(lib);  lib.method(1, 2, function() {    callbackCalled = true;  });  assert.ok(callbackCalled);}());(function runWrappedSeveralWithoutError() {  var callbacksCalled = 0;  var lib = {    fn1: function (a, callback) {      assert.equal(a, 1);      assert.equal(typeof callback, 'function');      callback();    },    fn2: function (a, callback) {      assert.equal(a, 2);      assert.equal(typeof callback, 'function');      callback();    }  };  retry.wrap(lib, {}, ['fn1', 'fn2']);  lib.fn1(1, function() {    callbacksCalled++;  });  lib.fn2(2, function() {    callbacksCalled++;  });  assert.equal(callbacksCalled, 2);}());(function runWrappedWithError() {  var callbackCalled;  var lib = {method: function(callback) {    callback(new Error('Some error'));  }};  retry.wrap(lib, {retries: 1});  lib.method(function(err) {    callbackCalled = true;    assert.ok(err instanceof Error);  });  assert.ok(!callbackCalled);}());
 |