simplify test constructor

This commit is contained in:
Iuri Matias 2017-03-03 21:06:44 -05:00
parent 6799e1d8a5
commit 94cca83670
1 changed files with 23 additions and 20 deletions

View File

@ -13,8 +13,30 @@ var Config = require('./config.js');
var RunCode = require('./runCode.js'); var RunCode = require('./runCode.js');
var TestLogger = require('./test_logger.js'); var TestLogger = require('./test_logger.js');
var getSimulator = function() {
try {
var sim = require('ethereumjs-testrpc');
return sim;
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND') {
console.log('Simulator not found; Please install it with "npm install ethereumjs-testrpc --save"');
console.log('IMPORTANT: if you using a NodeJS version older than 6.9.1 then you need to install an older version of testrpc "npm install ethereumjs-testrpc@2.0 --save"');
console.log('For more information see https://github.com/ethereumjs/testrpc');
// TODO: should throw exception instead
return process.exit();
}
console.log("==============");
console.log("Tried to load testrpc but an error occurred. This is a problem with testrpc");
console.log('IMPORTANT: if you using a NodeJS version older than 6.9.1 then you need to install an older version of testrpc "npm install ethereumjs-testrpc@2.0 --save". Alternatively install node 6.9.1 and the testrpc 3.0');
console.log("==============");
throw e;
}
};
var Test = function(options) { var Test = function(options) {
this.options = options || {}; this.options = options || {};
var simOptions = this.options.simulatorOptions || {};
this.engine = new Engine({ this.engine = new Engine({
env: this.options.env || 'test', env: this.options.env || 'test',
// TODO: confi will need to detect if this is a obj // TODO: confi will need to detect if this is a obj
@ -26,26 +48,7 @@ var Test = function(options) {
logger: new TestLogger({logLevel: this.options.logLevel || 'debug'}) logger: new TestLogger({logLevel: this.options.logLevel || 'debug'})
}); });
var simOptions = this.options.simulatorOptions || {}; this.sim = getSimulator();
try {
this.sim = require('ethereumjs-testrpc');
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND') {
console.log('Simulator not found; Please install it with "npm install ethereumjs-testrpc --save"');
console.log('IMPORTANT: if you using a NodeJS version older than 6.9.1 then you need to install an older version of testrpc "npm install ethereumjs-testrpc@2.0 --save"');
console.log('For more information see https://github.com/ethereumjs/testrpc');
// TODO: should throw exception instead
process.exit();
} else {
console.log("==============");
console.log("Tried to load testrpc but an error occurred. This is a problem with testrpc");
console.log('IMPORTANT: if you using a NodeJS version older than 6.9.1 then you need to install an older version of testrpc "npm install ethereumjs-testrpc@2.0 --save". Alternatively install node 6.9.1 and the testrpc 3.0');
console.log("==============");
throw e;
}
}
this.web3 = new Web3(); this.web3 = new Web3();
this.web3.setProvider(this.sim.provider(simOptions)); this.web3.setProvider(this.sim.provider(simOptions));
}; };