BREAKING CHANGE: removed 'timeout' method of Request

added default timeout to Request - will emit 'timeout' event
and RippleError('tejTimeout') to callback
This commit is contained in:
Ivan Tivonenko
2015-10-02 04:22:51 +03:00
parent 8edc3b1f36
commit 225ca3f852
3 changed files with 65 additions and 45 deletions

View File

@@ -65,6 +65,38 @@ describe('Request', function() {
});
it('Send request - reconnect', function(done) {
const server = makeServer('wss://localhost:5006');
let emitted = 0;
const remote = new Remote();
remote._connected = true;
remote._servers = [server];
server._request = function(req) {
assert(req instanceof Request);
assert.strictEqual(typeof req.message, 'object');
assert.strictEqual(req.message.command, 'server_info');
if (++emitted === 1) {
setTimeout(function() {
remote.emit('connected');
}, 2);
} if (emitted === 2) {
setTimeout(function() {
req.emit('success', SERVER_INFO);
req.emit('response', SERVER_INFO);
}, 2);
}
};
const request = new Request(remote, 'server_info');
request.callback(function() {
assert.strictEqual(emitted, 2);
done();
});
});
it('Send request -- filterRequest', function(done) {
const servers = [
makeServer('wss://localhost:5006'),
@@ -538,6 +570,7 @@ describe('Request', function() {
setTimeout(function() {
successEmitted = true;
req.emit('success', SERVER_INFO);
req.emit('response', SERVER_INFO);
}, 200);
};
@@ -546,8 +579,9 @@ describe('Request', function() {
remote._servers = [server];
const request = new Request(remote, 'server_info');
request.setTimeout(10);
request.timeout(10, function() {
request.on('timeout', function() {
setTimeout(function() {
assert(successEmitted);
done();
@@ -568,7 +602,8 @@ describe('Request', function() {
assert.strictEqual(req.message.command, 'server_info');
setTimeout(function() {
req.emit('success', SERVER_INFO);
}, 200);
req.emit('response', SERVER_INFO);
}, 20);
};
const remote = new Remote();
@@ -583,13 +618,15 @@ describe('Request', function() {
timedOut = true;
});
request.timeout(1000);
request.setTimeout(100);
request.callback(function(err, res) {
assert(!timedOut);
assert.ifError(err);
assert.deepEqual(res, SERVER_INFO);
done();
setTimeout(function() {
assert(!timedOut, 'must not timeout');
assert.ifError(err);
assert.deepEqual(res, SERVER_INFO);
done();
}, 100);
});
});