mirror of https://github.com/ethereum/go-ethereum
parent
45134de740
commit
e58e2f5ee4
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,128 @@ |
|||||||
|
var assert = require('assert'); |
||||||
|
var jsonrpc = require('../lib/jsonrpc'); |
||||||
|
|
||||||
|
describe('jsonrpc', function () { |
||||||
|
describe('isValidResponse', function () { |
||||||
|
it('should validate basic jsonrpc response', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
jsonrpc: '2.0', |
||||||
|
id: 1, |
||||||
|
result: [] |
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, true); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate basic undefined response', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = undefined; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, false); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate jsonrpc response without jsonrpc field', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
id: 1, |
||||||
|
result: [] |
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, false); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate jsonrpc response with wrong jsonrpc version', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
jsonrpc: '1.0', |
||||||
|
id: 1, |
||||||
|
result: [] |
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, false); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate jsonrpc response without id number', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
jsonrpc: '2.0', |
||||||
|
result: [] |
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, false); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate jsonrpc response with wrong id field', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
jsonrpc: '2.0', |
||||||
|
id: 'x', |
||||||
|
result: [] |
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, false); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate jsonrpc response without result field', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
jsonrpc: '2.0', |
||||||
|
id: 1 |
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, false); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should validate jsonrpc response with result field === false', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var response = { |
||||||
|
jsonrpc: '2.0', |
||||||
|
id: 1, |
||||||
|
result: false
|
||||||
|
}; |
||||||
|
|
||||||
|
// when
|
||||||
|
var valid = jsonrpc.isValidResponse(response); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(valid, true); |
||||||
|
}); |
||||||
|
|
||||||
|
}); |
||||||
|
}); |
@ -0,0 +1,47 @@ |
|||||||
|
var assert = require('assert'); |
||||||
|
var jsonrpc = require('../lib/jsonrpc'); |
||||||
|
|
||||||
|
describe('jsonrpc', function () { |
||||||
|
describe('toBatchPayload', function () { |
||||||
|
it('should create basic batch payload', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var messages = [{ |
||||||
|
method: 'helloworld' |
||||||
|
}, { |
||||||
|
method: 'test2', |
||||||
|
params: [1] |
||||||
|
}]; |
||||||
|
|
||||||
|
// when
|
||||||
|
var payload = jsonrpc.toBatchPayload(messages); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(payload instanceof Array, true); |
||||||
|
assert.equal(payload.length, 2); |
||||||
|
assert.equal(payload[0].jsonrpc, '2.0'); |
||||||
|
assert.equal(payload[1].jsonrpc, '2.0'); |
||||||
|
assert.equal(payload[0].method, 'helloworld'); |
||||||
|
assert.equal(payload[1].method, 'test2'); |
||||||
|
assert.equal(payload[0].params instanceof Array, true); |
||||||
|
assert.equal(payload[1].params.length, 1); |
||||||
|
assert.equal(payload[1].params[0], 1); |
||||||
|
assert.equal(typeof payload[0].id, 'number'); |
||||||
|
assert.equal(typeof payload[1].id, 'number'); |
||||||
|
assert.equal(payload[0].id + 1, payload[1].id); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should create batch payload for empty input array', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var messages = []; |
||||||
|
|
||||||
|
// when
|
||||||
|
var payload = jsonrpc.toBatchPayload(messages); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(payload instanceof Array, true); |
||||||
|
assert.equal(payload.length, 0); |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
@ -0,0 +1,40 @@ |
|||||||
|
var assert = require('assert'); |
||||||
|
var jsonrpc = require('../lib/jsonrpc'); |
||||||
|
|
||||||
|
describe('jsonrpc', function () { |
||||||
|
describe('toPayload', function () { |
||||||
|
it('should create basic payload', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var method = 'helloworld'; |
||||||
|
|
||||||
|
// when
|
||||||
|
var payload = jsonrpc.toPayload(method); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(payload.jsonrpc, '2.0'); |
||||||
|
assert.equal(payload.method, method); |
||||||
|
assert.equal(payload.params instanceof Array, true); |
||||||
|
assert.equal(payload.params.length, 0); |
||||||
|
assert.equal(typeof payload.id, 'number'); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should create payload with params', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var method = 'helloworld1'; |
||||||
|
var params = [123, 'test']; |
||||||
|
|
||||||
|
// when
|
||||||
|
var payload = jsonrpc.toPayload(method, params); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal(payload.jsonrpc, '2.0'); |
||||||
|
assert.equal(payload.method, method); |
||||||
|
assert.equal(payload.params.length, 2); |
||||||
|
assert.equal(payload.params[0], params[0]); |
||||||
|
assert.equal(payload.params[1], params[1]); |
||||||
|
assert.equal(typeof payload.id, 'number'); |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
Loading…
Reference in new issue