80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
var should = require('chai').should();
|
|
var sinon = require('sinon');
|
|
var mkdirp = require('mkdirp');
|
|
var rimraf = require('rimraf');
|
|
|
|
var findConfig = require('../../lib/scaffold/find-config');
|
|
|
|
describe('#findConfig', function() {
|
|
|
|
var testDir = path.resolve(__dirname, '../temporary-test-data');
|
|
var expectedConfig = {
|
|
name: 'My Node'
|
|
};
|
|
|
|
before(function(done) {
|
|
// setup testing directories
|
|
mkdirp(testDir + '/p2/p1/p0', function(err) {
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
fs.writeFile(
|
|
testDir + '/p2/bitcore-node.json',
|
|
JSON.stringify(expectedConfig),
|
|
function() {
|
|
mkdirp(testDir + '/e0', function(err) {
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
done();
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
});
|
|
|
|
after(function(done) {
|
|
// cleanup testing directories
|
|
rimraf(testDir, function(err) {
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
done();
|
|
});
|
|
});
|
|
|
|
|
|
describe('will find a configuration file', function() {
|
|
|
|
it('in the current directory', function() {
|
|
var config = findConfig(path.resolve(testDir, 'p2'));
|
|
config.path.should.equal(path.resolve(testDir, 'p2'));
|
|
config.config.should.deep.equal(expectedConfig);
|
|
});
|
|
|
|
it('in a parent directory', function() {
|
|
var config = findConfig(path.resolve(testDir, 'p2/p1'));
|
|
config.path.should.equal(path.resolve(testDir, 'p2'));
|
|
config.config.should.deep.equal(expectedConfig);
|
|
});
|
|
|
|
it('recursively find in parent directories', function() {
|
|
var config = findConfig(path.resolve(testDir, 'p2/p1/p0'));
|
|
config.path.should.equal(path.resolve(testDir, 'p2'));
|
|
config.config.should.deep.equal(expectedConfig);
|
|
});
|
|
|
|
});
|
|
|
|
it('will return false if missing a configuration', function() {
|
|
var config = findConfig(path.resolve(testDir, 'e0'));
|
|
config.should.equal(false);
|
|
});
|
|
|
|
});
|