embark/test/blockchain.js

134 lines
4.1 KiB
JavaScript
Raw Normal View History

/*globals describe, it*/
const Blockchain = require('../lib/modules/blockchain_process/blockchain.js');
2018-06-11 20:26:32 +00:00
const constants = require('../lib/constants.json');
const {defaultHost} = require('../lib/utils/host');
2017-03-30 11:12:39 +00:00
const assert = require('assert');
2015-07-03 12:53:42 +00:00
describe('embark.Blockchain', function() {
describe('#initializer', function() {
describe('with empty config', function() {
it('should have a default config', function(done) {
let blockchain = new Blockchain({});
let expectedConfig = {
networkType: 'custom',
genesisBlock: false,
ethereumClientName: 'geth',
ethereumClientBin: 'geth',
datadir: false,
mineWhenNeeded: false,
rpcHost: defaultHost,
rpcPort: 8545,
2018-10-30 21:04:38 +00:00
rpcApi: ['eth', 'web3', 'net', 'debug', "personal"],
rpcCorsDomain: false,
networkId: 1337,
port: 30303,
nodiscover: false,
maxpeers: 25,
mine: false,
vmdebug: false,
whisper: true,
account: {},
devPassword: "",
2017-10-19 23:16:08 +00:00
bootnodes: "",
2018-10-30 21:04:38 +00:00
wsApi: ["eth", "web3", "net", "shh", "debug", "pubsub", "personal"],
wsHost: defaultHost,
2017-10-19 23:16:08 +00:00
wsOrigins: false,
2018-01-12 19:21:46 +00:00
wsPort: 8546,
2018-01-17 16:29:30 +00:00
wsRPC: true,
2018-01-24 00:36:02 +00:00
targetGasLimit: false,
2018-06-15 20:40:27 +00:00
syncMode: undefined,
2018-06-11 20:26:32 +00:00
verbosity: undefined,
proxy: true,
silent: undefined
};
// We check also proxy's ports because proxy is set to true
expectedConfig.wsPort += constants.blockchain.servicePortOnProxy;
expectedConfig.rpcPort += constants.blockchain.servicePortOnProxy;
assert.deepEqual(blockchain.config, expectedConfig);
2017-03-30 13:16:46 +00:00
done();
});
2015-07-03 12:53:42 +00:00
});
describe('with config', function() {
it('should take config params', function(done) {
2017-03-29 17:57:22 +00:00
let config = {
networkType: 'livenet',
genesisBlock: 'foo/bar/genesis.json',
ethereumClientName: 'parity',
ethereumClientBin: 'parity',
datadir: '/foo/datadir/',
mineWhenNeeded: true,
rpcHost: defaultHost,
rpcPort: 12345,
2018-10-30 21:04:38 +00:00
rpcApi: ['eth', 'web3', 'net', 'debug', "personal"],
rpcCorsDomain: true,
networkId: 1,
port: 123456,
nodiscover: true,
2016-10-31 00:35:11 +00:00
maxpeers: 25,
mine: true,
2017-02-18 13:41:18 +00:00
vmdebug: false,
whisper: false,
2017-02-18 13:24:23 +00:00
account: {},
devPassword: "foo/bar/devpassword",
2017-10-19 23:16:08 +00:00
bootnodes: "",
2018-10-30 21:04:38 +00:00
wsApi: ["eth", "web3", "net", "shh", "debug", "personal"],
wsHost: defaultHost,
2017-10-19 23:16:08 +00:00
wsOrigins: false,
wsPort: 12346,
2018-01-17 16:29:30 +00:00
wsRPC: true,
2018-01-24 00:36:02 +00:00
targetGasLimit: false,
2018-06-15 20:40:27 +00:00
syncMode: undefined,
2018-06-11 20:26:32 +00:00
verbosity: undefined,
proxy: true
};
let blockchain = new Blockchain(config);
let expectedConfig = {
networkType: 'livenet',
genesisBlock: 'foo/bar/genesis.json',
ethereumClientName: 'parity',
ethereumClientBin: 'parity',
datadir: '/foo/datadir/',
mineWhenNeeded: true,
rpcHost: defaultHost,
rpcPort: 12345,
2018-10-30 21:04:38 +00:00
rpcApi: ['eth', 'web3', 'net', 'debug', 'personal'],
rpcCorsDomain: true,
networkId: 1,
port: 123456,
nodiscover: true,
maxpeers: 25,
mine: true,
vmdebug: false,
whisper: false,
account: {},
devPassword: "foo/bar/devpassword",
bootnodes: "",
2018-10-30 21:04:38 +00:00
wsApi: ["eth", "web3", "net", "shh", "debug", "personal"],
wsHost: defaultHost,
wsOrigins: false,
wsPort: 12346,
wsRPC: true,
targetGasLimit: false,
syncMode: undefined,
verbosity: undefined,
proxy: true,
silent: undefined
};
// We check also proxy's ports because proxy is set to true
expectedConfig.wsPort += constants.blockchain.servicePortOnProxy;
expectedConfig.rpcPort += constants.blockchain.servicePortOnProxy;
2018-06-11 20:26:32 +00:00
assert.deepEqual(blockchain.config, expectedConfig);
2017-03-30 13:16:46 +00:00
done();
2015-07-03 12:53:42 +00:00
});
});
});
2015-07-03 12:53:42 +00:00
});