aboutsummaryrefslogtreecommitdiffstats
path: root/test/methods.js
blob: 54d96b486a7b0d57117acd2decb088aed5342a90 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require('es6-promise').polyfill();

var assert = require('assert');
var web3 = require('../index.js');
web3.setProvider(new web3.providers.WebSocketProvider('http://localhost:8080')); // TODO: create some mock provider

var methodExists = function (object, method) {
    assert.equal('function', typeof object[method], 'method ' + method + ' is not implemented');
};

var propertyExists = function (object, property) {
    assert.equal('object', typeof object[property], 'property ' + property + ' is not implemented');
};

describe('web3', function() {
    describe('eth', function() {
        it('should have all methods implemented', function() {
            methodExists(web3.eth, 'balanceAt');
            methodExists(web3.eth, 'stateAt');
            methodExists(web3.eth, 'storageAt');
            methodExists(web3.eth, 'countAt');
            methodExists(web3.eth, 'codeAt');
            methodExists(web3.eth, 'transact');
            methodExists(web3.eth, 'call');
            methodExists(web3.eth, 'block');
            methodExists(web3.eth, 'transaction');
            methodExists(web3.eth, 'uncle');
            methodExists(web3.eth, 'compilers');
            methodExists(web3.eth, 'lll');
            methodExists(web3.eth, 'solidity');
            methodExists(web3.eth, 'serpent');
            methodExists(web3.eth, 'logs');
        });

        it('should have all properties implemented', function () {
            propertyExists(web3.eth, 'coinbase');
            propertyExists(web3.eth, 'listening');
            propertyExists(web3.eth, 'mining');
            propertyExists(web3.eth, 'gasPrice');
            propertyExists(web3.eth, 'account');
            propertyExists(web3.eth, 'accounts');
            propertyExists(web3.eth, 'peerCount');
            propertyExists(web3.eth, 'defaultBlock');
            propertyExists(web3.eth, 'number');
        });
    });
})