Added preconditions to pong message.
This commit is contained in:
parent
cf7d06baaa
commit
79674a2d7b
@ -4,6 +4,9 @@ var Message = require('../message');
|
|||||||
var inherits = require('util').inherits;
|
var inherits = require('util').inherits;
|
||||||
var bitcore = require('bitcore');
|
var bitcore = require('bitcore');
|
||||||
var utils = require('../utils');
|
var utils = require('../utils');
|
||||||
|
var $ = bitcore.util.preconditions;
|
||||||
|
var _ = bitcore.deps._;
|
||||||
|
var BufferUtil = bitcore.util.buffer;
|
||||||
var BufferReader = bitcore.encoding.BufferReader;
|
var BufferReader = bitcore.encoding.BufferReader;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -18,7 +21,14 @@ function PongMessage(arg, options) {
|
|||||||
Message.call(this, arg, options);
|
Message.call(this, arg, options);
|
||||||
this.command = 'pong';
|
this.command = 'pong';
|
||||||
this.magicNumber = options.magicNumber;
|
this.magicNumber = options.magicNumber;
|
||||||
|
$.checkArgument(
|
||||||
|
_.isUndefined(arg) || (BufferUtil.isBuffer(arg) && arg.length === 8),
|
||||||
|
'First argument is expected to be an 8 byte buffer'
|
||||||
|
);
|
||||||
this.nonce = arg;
|
this.nonce = arg;
|
||||||
|
if (!this.nonce) {
|
||||||
|
this.nonce = utils.getNonce();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
inherits(PongMessage, Message);
|
inherits(PongMessage, Message);
|
||||||
|
|
||||||
|
|||||||
@ -58,6 +58,28 @@ describe('Command Messages', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Pong', function() {
|
||||||
|
|
||||||
|
it('should error if nonce is not a buffer', function() {
|
||||||
|
(function() {
|
||||||
|
var message = messages.Pong('not a buffer');
|
||||||
|
}).should.throw('First argument is expected to be an 8 byte buffer');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should error if nonce buffer has invalid length', function() {
|
||||||
|
(function() {
|
||||||
|
var message = messages.Pong(new Buffer(Array(9)));
|
||||||
|
}).should.throw('First argument is expected to be an 8 byte buffer');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should set a nonce if not included', function() {
|
||||||
|
var message = messages.Pong();
|
||||||
|
should.exist(message.nonce);
|
||||||
|
message.nonce.length.should.equal(8);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
describe('FilterLoad', function() {
|
describe('FilterLoad', function() {
|
||||||
|
|
||||||
it('should return a null payload', function() {
|
it('should return a null payload', function() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user