%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
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); }());