mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 20:25:48 +00:00
throw error if Request.request called more than once
This commit is contained in:
@@ -43,16 +43,19 @@ Request.prototype.request = function(servers, callback_) {
|
||||
const self = this;
|
||||
const callback = typeof servers === 'function' ? servers : callback_;
|
||||
|
||||
if (this.requested) {
|
||||
throw new Error('Already requested');
|
||||
}
|
||||
|
||||
this.emit('before');
|
||||
|
||||
const wasRequested = this.requested;
|
||||
this.requested = true;
|
||||
this.callback(callback);
|
||||
|
||||
if (wasRequested) {
|
||||
// emit handler can set requested flag
|
||||
if (this.requested) {
|
||||
return this;
|
||||
}
|
||||
|
||||
this.requested = true;
|
||||
this.callback(callback);
|
||||
|
||||
this.on('error', function() {});
|
||||
this.emit('request', this.remote);
|
||||
|
||||
|
||||
@@ -40,13 +40,12 @@ const SERVER_INFO = {
|
||||
};
|
||||
|
||||
describe('Request', function() {
|
||||
it('Send request', function(done) {
|
||||
it('Send request', function() {
|
||||
const remote = {
|
||||
request: function(req) {
|
||||
assert(req instanceof Request);
|
||||
assert.strictEqual(typeof req.message, 'object');
|
||||
assert.strictEqual(req.message.command, 'server_info');
|
||||
done();
|
||||
},
|
||||
on: function() {
|
||||
},
|
||||
@@ -60,7 +59,10 @@ describe('Request', function() {
|
||||
request.request();
|
||||
|
||||
// Should only request once
|
||||
request.request();
|
||||
assert.throws(function() {
|
||||
request.request();
|
||||
}, Error);
|
||||
|
||||
});
|
||||
|
||||
it('Send request -- filterRequest', function(done) {
|
||||
|
||||
Reference in New Issue
Block a user