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