bricks-cli
Version:
Command line tool for developing ambitious ember.js apps
99 lines (82 loc) • 2.5 kB
JavaScript
;
var ember = require('../helpers/ember');
var assert = require('assert');
var forEach = require('lodash-node/compat/collections/forEach');
var walkSync = require('walk-sync');
var Blueprint = require('../../lib/models/blueprint');
var path = require('path');
var tmp = require('../helpers/tmp');
var root = process.cwd();
var util = require('util');
var conf = require('../helpers/conf');
var minimatch = require('minimatch');
var remove = require('lodash-node/compat/arrays/remove');
var any = require('lodash-node/compat/collections/some');
var defaultIgnoredFiles = Blueprint.ignoredFiles;
describe('Acceptance: ember init', function() {
before(function() {
conf.setup();
});
after(function() {
conf.restore();
});
beforeEach(function() {
tmp.setup('./tmp');
process.chdir('./tmp');
Blueprint.ignoredFiles = defaultIgnoredFiles;
});
afterEach(function() {
tmp.teardown('./tmp');
});
function confirmBlueprinted() {
var blueprintPath = path.join(root, 'blueprints', 'app', 'files');
var expected = walkSync(blueprintPath).sort();
var actual = walkSync('.').sort();
forEach(Blueprint.renamedFiles, function(destFile, srcFile) {
expected[expected.indexOf(srcFile)] = destFile;
});
removeIgnored(expected);
removeIgnored(actual);
expected.sort();
assert.deepEqual(expected, actual, '\n expected: ' + util.inspect(expected) +
'\n but got: ' + util.inspect(actual));
}
function removeIgnored(array) {
remove(array, function(fn) {
return any(Blueprint.ignoredFiles, function(ignoredFile) {
return minimatch(fn, ignoredFile, { matchBase: true });
});
});
}
it('ember init', function() {
return ember([
'init',
'--skip-npm',
'--skip-bower',
]).then(confirmBlueprinted);
});
it('ember init can run in created folder', function() {
tmp.setup('./tmp/foo');
process.chdir('./tmp/foo');
return ember([
'init',
'--skip-npm',
'--skip-bower'
]).then(confirmBlueprinted).then(function() {
tmp.teardown('./tmp/foo');
});
});
it('init an already init\'d folder', function() {
return ember([
'init',
'--skip-npm',
'--skip-bower'
]).then(function() {
return ember([
'init',
'--skip-npm',
'--skip-bower'
]).then(confirmBlueprinted);
});
});
});