source: trip-planner-front/node_modules/retry/test/integration/test-retry-wrap.js@ 6a3a178

Last change on this file since 6a3a178 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.6 KB
RevLine 
[6a3a178]1var common = require('../common');
2var assert = common.assert;
3var fake = common.fake.create();
4var retry = require(common.dir.lib + '/retry');
5
6function getLib() {
7 return {
8 fn1: function() {},
9 fn2: function() {},
10 fn3: function() {}
11 };
12}
13
14(function wrapAll() {
15 var lib = getLib();
16 retry.wrap(lib);
17 assert.equal(lib.fn1.name, 'bound retryWrapper');
18 assert.equal(lib.fn2.name, 'bound retryWrapper');
19 assert.equal(lib.fn3.name, 'bound retryWrapper');
20}());
21
22(function wrapAllPassOptions() {
23 var lib = getLib();
24 retry.wrap(lib, {retries: 2});
25 assert.equal(lib.fn1.name, 'bound retryWrapper');
26 assert.equal(lib.fn2.name, 'bound retryWrapper');
27 assert.equal(lib.fn3.name, 'bound 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);
31}());
32
33(function wrapDefined() {
34 var lib = getLib();
35 retry.wrap(lib, ['fn2', 'fn3']);
36 assert.notEqual(lib.fn1.name, 'bound retryWrapper');
37 assert.equal(lib.fn2.name, 'bound retryWrapper');
38 assert.equal(lib.fn3.name, 'bound retryWrapper');
39}());
40
41(function wrapDefinedAndPassOptions() {
42 var lib = getLib();
43 retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']);
44 assert.notEqual(lib.fn1.name, 'bound retryWrapper');
45 assert.equal(lib.fn2.name, 'bound retryWrapper');
46 assert.equal(lib.fn3.name, 'bound retryWrapper');
47 assert.equal(lib.fn2.options.retries, 2);
48 assert.equal(lib.fn3.options.retries, 2);
49}());
50
51(function runWrappedWithoutError() {
52 var callbackCalled;
53 var lib = {method: function(a, b, callback) {
54 assert.equal(a, 1);
55 assert.equal(b, 2);
56 assert.equal(typeof callback, 'function');
57 callback();
58 }};
59 retry.wrap(lib);
60 lib.method(1, 2, function() {
61 callbackCalled = true;
62 });
63 assert.ok(callbackCalled);
64}());
65
66(function runWrappedSeveralWithoutError() {
67 var callbacksCalled = 0;
68 var lib = {
69 fn1: function (a, callback) {
70 assert.equal(a, 1);
71 assert.equal(typeof callback, 'function');
72 callback();
73 },
74 fn2: function (a, callback) {
75 assert.equal(a, 2);
76 assert.equal(typeof callback, 'function');
77 callback();
78 }
79 };
80 retry.wrap(lib, {}, ['fn1', 'fn2']);
81 lib.fn1(1, function() {
82 callbacksCalled++;
83 });
84 lib.fn2(2, function() {
85 callbacksCalled++;
86 });
87 assert.equal(callbacksCalled, 2);
88}());
89
90(function runWrappedWithError() {
91 var callbackCalled;
92 var lib = {method: function(callback) {
93 callback(new Error('Some error'));
94 }};
95 retry.wrap(lib, {retries: 1});
96 lib.method(function(err) {
97 callbackCalled = true;
98 assert.ok(err instanceof Error);
99 });
100 assert.ok(!callbackCalled);
101}());
Note: See TracBrowser for help on using the repository browser.