2015-02-03 23:00:02 +01:00
|
|
|
var assert = require('assert');
|
2017-01-26 10:24:14 +01:00
|
|
|
var Jsonrpc = require('../packages/web3-core-requestManager/src/jsonrpc');
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
describe('jsonrpc', function () {
|
|
|
|
describe('isValidResponse', function () {
|
|
|
|
it('should validate basic jsonrpc response', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
id: 1,
|
|
|
|
result: []
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, true);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should validate basic undefined response', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = undefined;
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, false);
|
|
|
|
});
|
2017-01-26 10:24:14 +01:00
|
|
|
|
2015-02-03 23:00:02 +01:00
|
|
|
it('should validate jsonrpc response without jsonrpc field', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
id: 1,
|
|
|
|
result: []
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, false);
|
|
|
|
});
|
2017-01-26 10:24:14 +01:00
|
|
|
|
2015-02-03 23:00:02 +01:00
|
|
|
it('should validate jsonrpc response with wrong jsonrpc version', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '1.0',
|
|
|
|
id: 1,
|
|
|
|
result: []
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, false);
|
|
|
|
});
|
2017-01-26 10:24:14 +01:00
|
|
|
|
2015-02-03 23:00:02 +01:00
|
|
|
it('should validate jsonrpc response without id number', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
result: []
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, false);
|
|
|
|
});
|
|
|
|
|
2017-02-07 17:07:39 +01:00
|
|
|
it('should validate jsonrpc response with string id field', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
id: 'x',
|
|
|
|
result: []
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
2017-02-07 17:07:39 +01:00
|
|
|
assert.equal(valid, true);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should validate jsonrpc response with string id field but as number', function () {
|
|
|
|
|
|
|
|
// given
|
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
id: '23',
|
|
|
|
result: []
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, true);
|
2015-02-03 23:00:02 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should validate jsonrpc response without result field', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
id: 1
|
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should validate jsonrpc response with result field === false', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-03 23:00:02 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
id: 1,
|
2017-01-26 10:24:14 +01:00
|
|
|
result: false
|
2015-02-03 23:00:02 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-03 23:00:02 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, true);
|
|
|
|
});
|
|
|
|
|
2015-02-04 11:23:23 +01:00
|
|
|
it('should validate jsonrpc response with result field === 0', function () {
|
2017-01-26 10:24:14 +01:00
|
|
|
|
|
|
|
// given
|
2015-02-04 11:23:23 +01:00
|
|
|
var response = {
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
id: 1,
|
2017-01-26 10:24:14 +01:00
|
|
|
result: 0
|
2015-02-04 11:23:23 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
// when
|
2016-08-26 14:55:16 -07:00
|
|
|
var valid = Jsonrpc.isValidResponse(response);
|
2015-02-04 11:23:23 +01:00
|
|
|
|
|
|
|
// then
|
|
|
|
assert.equal(valid, true);
|
|
|
|
});
|
2015-02-03 23:00:02 +01:00
|
|
|
});
|
|
|
|
});
|