Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/.nvm/versions/node/v18.17.1/lib/node_modules/npm/node_modules/promise-retry/test/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
var expect = require('expect.js');
var promiseRetry = require('../');
var promiseDelay = require('sleep-promise');
describe('promise-retry', function () {
it('should call fn again if retry was called', function () {
var count = 0;
return promiseRetry(function (retry) {
count += 1;
return promiseDelay(10)
.then(function () {
if (count <= 2) {
retry(new Error('foo'));
}
return 'final';
});
}, { factor: 1 })
.then(function (value) {
expect(value).to.be('final');
expect(count).to.be(3);
}, function () {
throw new Error('should not fail');
});
});
it('should call fn with the attempt number', function () {
var count = 0;
return promiseRetry(function (retry, number) {
count += 1;
expect(count).to.equal(number);
return promiseDelay(10)
.then(function () {
if (count <= 2) {
retry(new Error('foo'));
}
return 'final';
});
}, { factor: 1 })
.then(function (value) {
expect(value).to.be('final');
expect(count).to.be(3);
}, function () {
throw new Error('should not fail');
});
});
it('should not retry on fulfillment if retry was not called', function () {
var count = 0;
return promiseRetry(function () {
count += 1;
return promiseDelay(10)
.then(function () {
return 'final';
});
})
.then(function (value) {
expect(value).to.be('final');
expect(count).to.be(1);
}, function () {
throw new Error('should not fail');
});
});
it('should not retry on rejection if retry was not called', function () {
var count = 0;
return promiseRetry(function () {
count += 1;
return promiseDelay(10)
.then(function () {
throw new Error('foo');
});
})
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err.message).to.be('foo');
expect(count).to.be(1);
});
});
it('should not retry on rejection if nr of retries is 0', function () {
var count = 0;
return promiseRetry(function (retry) {
count += 1;
return promiseDelay(10)
.then(function () {
throw new Error('foo');
})
.catch(retry);
}, { retries : 0 })
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err.message).to.be('foo');
expect(count).to.be(1);
});
});
it('should reject the promise if the retries were exceeded', function () {
var count = 0;
return promiseRetry(function (retry) {
count += 1;
return promiseDelay(10)
.then(function () {
throw new Error('foo');
})
.catch(retry);
}, { retries: 2, factor: 1 })
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err.message).to.be('foo');
expect(count).to.be(3);
});
});
it('should pass options to the underlying retry module', function () {
var count = 0;
return promiseRetry(function (retry) {
return promiseDelay(10)
.then(function () {
if (count < 2) {
count += 1;
retry(new Error('foo'));
}
return 'final';
});
}, { retries: 1, factor: 1 })
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err.message).to.be('foo');
});
});
it('should convert direct fulfillments into promises', function () {
return promiseRetry(function () {
return 'final';
}, { factor: 1 })
.then(function (value) {
expect(value).to.be('final');
}, function () {
throw new Error('should not fail');
});
});
it('should convert direct rejections into promises', function () {
promiseRetry(function () {
throw new Error('foo');
}, { retries: 1, factor: 1 })
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err.message).to.be('foo');
});
});
it('should not crash on undefined rejections', function () {
return promiseRetry(function () {
throw undefined;
}, { retries: 1, factor: 1 })
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err).to.be(undefined);
})
.then(function () {
return promiseRetry(function (retry) {
retry();
}, { retries: 1, factor: 1 });
})
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err).to.be(undefined);
});
});
it('should retry if retry() was called with undefined', function () {
var count = 0;
return promiseRetry(function (retry) {
count += 1;
return promiseDelay(10)
.then(function () {
if (count <= 2) {
retry();
}
return 'final';
});
}, { factor: 1 })
.then(function (value) {
expect(value).to.be('final');
expect(count).to.be(3);
}, function () {
throw new Error('should not fail');
});
});
it('should work with several retries in the same chain', function () {
var count = 0;
return promiseRetry(function (retry) {
count += 1;
return promiseDelay(10)
.then(function () {
retry(new Error('foo'));
})
.catch(function (err) {
retry(err);
});
}, { retries: 1, factor: 1 })
.then(function () {
throw new Error('should not succeed');
}, function (err) {
expect(err.message).to.be('foo');
expect(count).to.be(2);
});
});
it('should allow options to be passed first', function () {
var count = 0;
return promiseRetry({ factor: 1 }, function (retry) {
count += 1;
return promiseDelay(10)
.then(function () {
if (count <= 2) {
retry(new Error('foo'));
}
return 'final';
});
}).then(function (value) {
expect(value).to.be('final');
expect(count).to.be(3);
}, function () {
throw new Error('should not fail');
});
});
});
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0036 ]-- |