text: '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/npccoincore-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);
    });
  
  });
  