mirror of https://github.com/status-im/web3.js.git
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
|
var chai = require('chai');
|
||
|
var assert = require('assert');
|
||
|
var utils = require('../lib/utils/utils');
|
||
|
|
||
|
var getResponseStub = function () {
|
||
|
return {
|
||
|
jsonrpc: '2.0',
|
||
|
id: 1,
|
||
|
result: 0
|
||
|
};
|
||
|
};
|
||
|
|
||
|
var FakeHttpProvider = function () {
|
||
|
this.response = getResponseStub();
|
||
|
this.error = null;
|
||
|
this.validation = null;
|
||
|
};
|
||
|
|
||
|
FakeHttpProvider.prototype.send = function (payload) {
|
||
|
assert.equal(utils.isArray(payload) || utils.isObject(payload), true);
|
||
|
// TODO: validate jsonrpc request
|
||
|
if (this.error) {
|
||
|
throw this.error;
|
||
|
}
|
||
|
if (this.validation) {
|
||
|
this.validation(payload);
|
||
|
}
|
||
|
return this.response;
|
||
|
};
|
||
|
|
||
|
FakeHttpProvider.prototype.sendAsync = function (payload, callback) {
|
||
|
assert.equal(utils.isArray(payload) || utils.isObject(payload), true);
|
||
|
assert.equal(utils.isFunction(callback), true);
|
||
|
if (this.validation) {
|
||
|
this.validation(payload, callback);
|
||
|
}
|
||
|
callback(this.error, this.response);
|
||
|
};
|
||
|
|
||
|
FakeHttpProvider.prototype.injectResponse = function (response) {
|
||
|
this.response = response;
|
||
|
};
|
||
|
|
||
|
FakeHttpProvider.prototype.injectResult = function (result) {
|
||
|
this.response = getResponseStub();
|
||
|
this.response.result = result;
|
||
|
};
|
||
|
|
||
|
FakeHttpProvider.prototype.injectError = function (error) {
|
||
|
this.error = error;
|
||
|
};
|
||
|
|
||
|
FakeHttpProvider.prototype.injectValidation = function (callback) {
|
||
|
this.validation = callback;
|
||
|
};
|
||
|
|
||
|
module.exports = FakeHttpProvider;
|
||
|
|