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/retry/test/integration/ drwxr-xr-x | |
| Viewing file: Select action/file-type: var common = require('../common');
var assert = common.assert;
var fake = common.fake.create();
var retry = require(common.dir.lib + '/retry');
(function testReset() {
var error = new Error('some error');
var operation = retry.operation([1, 2, 3]);
var attempts = 0;
var finalCallback = fake.callback('finalCallback');
fake.expectAnytime(finalCallback);
var expectedFinishes = 1;
var finishes = 0;
var fn = function() {
operation.attempt(function(currentAttempt) {
attempts++;
assert.equal(currentAttempt, attempts);
if (operation.retry(error)) {
return;
}
finishes++
assert.equal(expectedFinishes, finishes);
assert.strictEqual(attempts, 4);
assert.strictEqual(operation.attempts(), attempts);
assert.strictEqual(operation.mainError(), error);
if (finishes < 2) {
attempts = 0;
expectedFinishes++;
operation.reset();
fn()
} else {
finalCallback();
}
});
};
fn();
})();
(function testErrors() {
var operation = retry.operation();
var error = new Error('some error');
var error2 = new Error('some other error');
operation._errors.push(error);
operation._errors.push(error2);
assert.deepEqual(operation.errors(), [error, error2]);
})();
(function testMainErrorReturnsMostFrequentError() {
var operation = retry.operation();
var error = new Error('some error');
var error2 = new Error('some other error');
operation._errors.push(error);
operation._errors.push(error2);
operation._errors.push(error);
assert.strictEqual(operation.mainError(), error);
})();
(function testMainErrorReturnsLastErrorOnEqualCount() {
var operation = retry.operation();
var error = new Error('some error');
var error2 = new Error('some other error');
operation._errors.push(error);
operation._errors.push(error2);
assert.strictEqual(operation.mainError(), error2);
})();
(function testAttempt() {
var operation = retry.operation();
var fn = new Function();
var timeoutOpts = {
timeout: 1,
cb: function() {}
};
operation.attempt(fn, timeoutOpts);
assert.strictEqual(fn, operation._fn);
assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout);
assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb);
})();
(function testRetry() {
var error = new Error('some error');
var operation = retry.operation([1, 2, 3]);
var attempts = 0;
var finalCallback = fake.callback('finalCallback');
fake.expectAnytime(finalCallback);
var fn = function() {
operation.attempt(function(currentAttempt) {
attempts++;
assert.equal(currentAttempt, attempts);
if (operation.retry(error)) {
return;
}
assert.strictEqual(attempts, 4);
assert.strictEqual(operation.attempts(), attempts);
assert.strictEqual(operation.mainError(), error);
finalCallback();
});
};
fn();
})();
(function testRetryForever() {
var error = new Error('some error');
var operation = retry.operation({ retries: 3, forever: true });
var attempts = 0;
var finalCallback = fake.callback('finalCallback');
fake.expectAnytime(finalCallback);
var fn = function() {
operation.attempt(function(currentAttempt) {
attempts++;
assert.equal(currentAttempt, attempts);
if (attempts !== 6 && operation.retry(error)) {
return;
}
assert.strictEqual(attempts, 6);
assert.strictEqual(operation.attempts(), attempts);
assert.strictEqual(operation.mainError(), error);
finalCallback();
});
};
fn();
})();
(function testRetryForeverNoRetries() {
var error = new Error('some error');
var delay = 50
var operation = retry.operation({
retries: null,
forever: true,
minTimeout: delay,
maxTimeout: delay
});
var attempts = 0;
var startTime = new Date().getTime();
var finalCallback = fake.callback('finalCallback');
fake.expectAnytime(finalCallback);
var fn = function() {
operation.attempt(function(currentAttempt) {
attempts++;
assert.equal(currentAttempt, attempts);
if (attempts !== 4 && operation.retry(error)) {
return;
}
var endTime = new Date().getTime();
var minTime = startTime + (delay * 3);
var maxTime = minTime + 20 // add a little headroom for code execution time
assert(endTime >= minTime)
assert(endTime < maxTime)
assert.strictEqual(attempts, 4);
assert.strictEqual(operation.attempts(), attempts);
assert.strictEqual(operation.mainError(), error);
finalCallback();
});
};
fn();
})();
(function testStop() {
var error = new Error('some error');
var operation = retry.operation([1, 2, 3]);
var attempts = 0;
var finalCallback = fake.callback('finalCallback');
fake.expectAnytime(finalCallback);
var fn = function() {
operation.attempt(function(currentAttempt) {
attempts++;
assert.equal(currentAttempt, attempts);
if (attempts === 2) {
operation.stop();
assert.strictEqual(attempts, 2);
assert.strictEqual(operation.attempts(), attempts);
assert.strictEqual(operation.mainError(), error);
finalCallback();
}
if (operation.retry(error)) {
return;
}
});
};
fn();
})();
(function testMaxRetryTime() {
var error = new Error('some error');
var maxRetryTime = 30;
var operation = retry.operation({
minTimeout: 1,
maxRetryTime: maxRetryTime
});
var attempts = 0;
var finalCallback = fake.callback('finalCallback');
fake.expectAnytime(finalCallback);
var longAsyncFunction = function (wait, callback){
setTimeout(callback, wait);
};
var fn = function() {
var startTime = new Date().getTime();
operation.attempt(function(currentAttempt) {
attempts++;
assert.equal(currentAttempt, attempts);
if (attempts !== 2) {
if (operation.retry(error)) {
return;
}
} else {
var curTime = new Date().getTime();
longAsyncFunction(maxRetryTime - (curTime - startTime - 1), function(){
if (operation.retry(error)) {
assert.fail('timeout should be occurred');
return;
}
assert.strictEqual(operation.mainError(), error);
finalCallback();
});
}
});
};
fn();
})();
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0045 ]-- |