summaryrefslogtreecommitdiff
path: root/node_modules/retry/test/integration/test-retry-wrap.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/retry/test/integration/test-retry-wrap.js')
-rw-r--r--node_modules/retry/test/integration/test-retry-wrap.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/node_modules/retry/test/integration/test-retry-wrap.js b/node_modules/retry/test/integration/test-retry-wrap.js
new file mode 100644
index 0000000..3d2b6bf
--- /dev/null
+++ b/node_modules/retry/test/integration/test-retry-wrap.js
@@ -0,0 +1,101 @@
+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);
+}());