1 var common = require('../common');
2 var assert = common.assert;
3 var fake = common.fake.create();
4 var retry = require(common.dir.lib + '/retry');
17 assert.equal(lib.fn1.name, 'retryWrapper');
18 assert.equal(lib.fn2.name, 'retryWrapper');
19 assert.equal(lib.fn3.name, 'retryWrapper');
22 (function wrapAllPassOptions() {
24 retry.wrap(lib, {retries: 2});
25 assert.equal(lib.fn1.name, 'retryWrapper');
26 assert.equal(lib.fn2.name, 'retryWrapper');
27 assert.equal(lib.fn3.name, 'retryWrapper');
28 assert.equal(lib.fn1.options.retries, 2);
29 assert.equal(lib.fn2.options.retries, 2);
30 assert.equal(lib.fn3.options.retries, 2);
33 (function wrapDefined() {
35 retry.wrap(lib, ['fn2', 'fn3']);
36 assert.notEqual(lib.fn1.name, 'retryWrapper');
37 assert.equal(lib.fn2.name, 'retryWrapper');
38 assert.equal(lib.fn3.name, 'retryWrapper');
41 (function wrapDefinedAndPassOptions() {
43 retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']);
44 assert.notEqual(lib.fn1.name, 'retryWrapper');
45 assert.equal(lib.fn2.name, 'retryWrapper');
46 assert.equal(lib.fn3.name, 'retryWrapper');
47 assert.equal(lib.fn2.options.retries, 2);
48 assert.equal(lib.fn3.options.retries, 2);
51 (function runWrappedWithoutError() {
53 var lib = {method: function(a, b, callback) {
56 assert.equal(typeof callback, 'function');
60 lib.method(1, 2, function() {
61 callbackCalled = true;
63 assert.ok(callbackCalled);
66 (function runWrappedWithError() {
68 var lib = {method: function(callback) {
69 callback(new Error('Some error'));
71 retry.wrap(lib, {retries: 1});
72 lib.method(function(err) {
73 callbackCalled = true;
74 assert.ok(err instanceof Error);
76 assert.ok(!callbackCalled);