mirror of
https://github.com/status-im/web3.js.git
synced 2025-02-24 12:08:22 +00:00
67 lines
2.4 KiB
JavaScript
67 lines
2.4 KiB
JavaScript
var chai = require('chai');
|
|
var assert = chai.assert;
|
|
var web3 = require('../../index');
|
|
var FakeHttpProvider = require('./FakeHttpProvider');
|
|
|
|
var runTests = function (obj, method, tests) {
|
|
|
|
describe(obj ? obj : 'web3', function () {
|
|
describe(method, function () {
|
|
tests.forEach(function (test, index) {
|
|
it('sync test: ' + index, function () {
|
|
|
|
// given
|
|
var provider = new FakeHttpProvider();
|
|
web3.setProvider(provider);
|
|
provider.injectResult(test.result);
|
|
provider.injectValidation(function (payload) {
|
|
assert.equal(payload.jsonrpc, '2.0');
|
|
assert.equal(payload.method, test.call);
|
|
assert.deepEqual(payload.params, test.formattedArgs);
|
|
});
|
|
|
|
// when
|
|
var result = (obj)
|
|
? web3[obj][method].apply(null, test.args.slice(0))
|
|
: web3[method].apply(null, test.args.slice(0));
|
|
|
|
// then
|
|
assert.deepEqual(test.formattedResult, result);
|
|
});
|
|
|
|
it('async test: ' + index, function (done) {
|
|
|
|
// given
|
|
var provider = new FakeHttpProvider();
|
|
web3.setProvider(provider);
|
|
provider.injectResult(test.result);
|
|
provider.injectValidation(function (payload) {
|
|
assert.equal(payload.jsonrpc, '2.0');
|
|
assert.equal(payload.method, test.call);
|
|
assert.deepEqual(payload.params, test.formattedArgs);
|
|
});
|
|
|
|
var args = test.args.slice(0);
|
|
// add callback
|
|
args.push(function (err, result) {
|
|
assert.deepEqual(test.formattedResult, result);
|
|
done();
|
|
});
|
|
|
|
// when
|
|
if(obj)
|
|
web3[obj][method].apply(null, args);
|
|
else
|
|
web3[method].apply(null, args);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
};
|
|
|
|
module.exports = {
|
|
runTests: runTests
|
|
}
|
|
|