2015-08-19 13:14:44 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var should = require('chai').should();
|
|
|
|
var create = require('../../lib/scaffold/create');
|
|
|
|
var fs = require('fs');
|
|
|
|
var mkdirp = require('mkdirp');
|
|
|
|
var rimraf = require('rimraf');
|
|
|
|
|
|
|
|
describe('#create', function() {
|
|
|
|
|
|
|
|
var basePath = __dirname + '/../';
|
|
|
|
var testDir = basePath + 'temporary-test-data';
|
|
|
|
|
|
|
|
before(function(done) {
|
|
|
|
// setup testing directories
|
|
|
|
mkdirp(testDir, function(err) {
|
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
2015-08-20 09:34:26 -07:00
|
|
|
mkdirp(testDir + '/.bitcoin', function(err) {
|
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
done();
|
|
|
|
});
|
2015-08-19 13:14:44 -07:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
after(function(done) {
|
|
|
|
// cleanup testing directories
|
|
|
|
rimraf(testDir, function(err) {
|
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('will create scaffold files', function() {
|
|
|
|
|
2015-08-20 09:34:26 -07:00
|
|
|
create({
|
|
|
|
cwd: testDir,
|
|
|
|
dirname: 'mynode',
|
|
|
|
name: 'My Node 1',
|
|
|
|
isGlobal: false,
|
|
|
|
datadir: './data'
|
|
|
|
}, function(err) {
|
2015-08-19 13:14:44 -07:00
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
|
|
|
|
var configPath = testDir + '/mynode/bitcore-node.json';
|
|
|
|
var packagePath = testDir + '/mynode/package.json';
|
|
|
|
var bitcoinConfig = testDir + '/mynode/data/bitcoin.conf';
|
|
|
|
|
|
|
|
should.equal(fs.existsSync(configPath), true);
|
|
|
|
should.equal(fs.existsSync(packagePath), true);
|
|
|
|
should.equal(fs.existsSync(bitcoinConfig), true);
|
|
|
|
|
|
|
|
var config = JSON.parse(fs.readFileSync(configPath));
|
|
|
|
config.name.should.equal('My Node 1');
|
|
|
|
config.modules.should.deep.equal(['address']);
|
|
|
|
config.datadir.should.equal('./data');
|
|
|
|
config.network.should.equal('livenet');
|
|
|
|
|
|
|
|
var pack = JSON.parse(fs.readFileSync(packagePath));
|
|
|
|
should.exist(pack.dependencies);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-08-20 09:34:26 -07:00
|
|
|
it('will error if directory already exists', function() {
|
|
|
|
|
|
|
|
create({
|
|
|
|
cwd: testDir,
|
|
|
|
dirname: 'mynode',
|
|
|
|
name: 'My Node 2',
|
|
|
|
isGlobal: false,
|
|
|
|
datadir: './data'
|
|
|
|
}, function(err) {
|
|
|
|
should.exist(err);
|
|
|
|
err.message.should.match(/^Directory/);
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
it('will not create bitcoin.conf if it already exists', function() {
|
|
|
|
|
|
|
|
create({
|
|
|
|
cwd: testDir,
|
|
|
|
dirname: 'mynode2',
|
|
|
|
name: 'My Node 2',
|
|
|
|
isGlobal: false,
|
|
|
|
datadir: '../.bitcoin'
|
|
|
|
}, function(err) {
|
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
|
|
|
|
var bitcoinConfig = testDir + '/.bitcoin/bitcoin.conf';
|
|
|
|
should.equal(fs.existsSync(bitcoinConfig), false);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
it('will not create a package.json if globally installed', function() {
|
|
|
|
|
|
|
|
create({
|
|
|
|
cwd: testDir,
|
|
|
|
dirname: 'mynode3',
|
|
|
|
name: 'My Node 3',
|
|
|
|
isGlobal: true,
|
|
|
|
datadir: '../.bitcoin'
|
|
|
|
}, function(err) {
|
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
|
|
|
|
var packagePath = testDir + '/mynode3/package.json';
|
|
|
|
should.equal(fs.existsSync(packagePath), false);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-08-19 13:14:44 -07:00
|
|
|
});
|