2015-08-31 06:00:00 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var should = require('chai').should();
|
|
|
|
var proxyquire = require('proxyquire');
|
|
|
|
var fs = require('fs');
|
|
|
|
var sinon = require('sinon');
|
2015-08-31 06:00:00 -07:00
|
|
|
var BitcoinService = proxyquire('../../lib/services/bitcoind', {
|
2015-08-31 06:00:00 -07:00
|
|
|
fs: {
|
|
|
|
readFileSync: sinon.stub().returns(fs.readFileSync(__dirname + '/../data/bitcoin.conf'))
|
|
|
|
}
|
|
|
|
});
|
2015-08-31 06:00:00 -07:00
|
|
|
var BadBitcoin = proxyquire('../../lib/services/bitcoind', {
|
2015-08-31 06:00:00 -07:00
|
|
|
fs: {
|
|
|
|
readFileSync: sinon.stub().returns(fs.readFileSync(__dirname + '/../data/badbitcoin.conf'))
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2015-08-31 06:00:00 -07:00
|
|
|
describe('Bitcoin Service', function() {
|
2015-08-31 06:00:00 -07:00
|
|
|
var baseConfig = {
|
|
|
|
node: {
|
|
|
|
datadir: 'testdir',
|
|
|
|
network: {
|
|
|
|
name: 'regtest'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
describe('#_loadConfiguration', function() {
|
|
|
|
it('will parse a bitcoin.conf file', function() {
|
2015-08-31 06:00:00 -07:00
|
|
|
var bitcoind = new BitcoinService(baseConfig);
|
2015-08-31 06:00:00 -07:00
|
|
|
bitcoind._loadConfiguration({datadir: process.env.HOME + '/.bitcoin'});
|
|
|
|
should.exist(bitcoind.configuration);
|
|
|
|
bitcoind.configuration.should.deep.equal({
|
|
|
|
server: 1,
|
|
|
|
whitelist: '127.0.0.1',
|
|
|
|
txindex: 1,
|
|
|
|
port: 20000,
|
|
|
|
rpcallowip: '127.0.0.1',
|
|
|
|
rpcuser: 'bitcoin',
|
|
|
|
rpcpassword: 'local321'
|
|
|
|
});
|
|
|
|
});
|
|
|
|
it('should throw an exception if txindex isn\'t enabled in the configuration', function() {
|
|
|
|
var bitcoind = new BadBitcoin(baseConfig);
|
|
|
|
(function() {
|
|
|
|
bitcoind._loadConfiguration({datadir: './test'});
|
|
|
|
}).should.throw('Txindex option');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|