Skip to content
This repository has been archived by the owner on Dec 10, 2024. It is now read-only.

Commit

Permalink
Merge pull request #96 from rwjblue/pull-ember-mocha-from-npm
Browse files Browse the repository at this point in the history
Update to pull ember-mocha from NPM.
  • Loading branch information
rwjblue committed Feb 1, 2016
2 parents e2b9537 + 4c4b402 commit 362d030
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 22 deletions.
6 changes: 4 additions & 2 deletions blueprints/ember-cli-mocha/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ module.exports = {
var addonContext = this;

return this.addBowerPackagesToProject([
{ name: 'mocha', source: 'mocha', target: '~2.2.4' },
{ name: 'chai', source: 'chai', target: '~2.3.0' },
{ name: 'ember-mocha-adapter', source: 'ember-mocha-adapter', target: '~0.3.1' },
{ name: 'ember-mocha', source: 'ember-mocha', target: '~0.8.8' },
{ name: 'ember-cli-test-loader', source: 'ember-cli/ember-cli-test-loader', target: '0.2.2' },
{ name: 'ember-cli-shims', source: 'ember-cli/ember-cli-shims', target: '0.0.6' }
{ name: 'ember-cli-test-loader', source: 'ember-cli/ember-cli-test-loader', target: '0.2.2' }
]).then(function() {
if ('removePackageFromProject' in addonContext) {
return addonContext.removePackageFromProject('ember-cli-qunit');
Expand Down
97 changes: 79 additions & 18 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
var path = require('path');
var fs = require('fs');
var jshintTrees = require('broccoli-jshint');
var MergeTrees = require('broccoli-merge-trees');
var BabelTranspiler = require('broccoli-babel-transpiler');
var Concat = require('broccoli-concat');
var Funnel = require('broccoli-funnel');
var resolve = require('resolve');
var VersionChecker = require('ember-cli-version-checker');

module.exports = {
name: 'Ember CLI Mocha',
Expand Down Expand Up @@ -39,8 +45,31 @@ module.exports = {
});
},

_getDependencyTrees: function() {
if (this._dependencyTrees) {
return this._dependencyTrees;
}

var emberTestHelpersPath = path.dirname(resolve.sync('ember-test-helpers', { basedir: this._emberMochaLibPath }));
var klassyPath = path.dirname(resolve.sync('klassy', { basedir: emberTestHelpersPath }));

this._dependencyTrees = [
this.treeGenerator(this._emberMochaLibPath),
this.treeGenerator(emberTestHelpersPath),
this.treeGenerator(klassyPath)
];

return this._dependencyTrees;
},

init: function() {
this.overrideTestCommandFilter();

var checker = new VersionChecker(this);
var dep = checker.for('ember-cli', 'npm');

this._shouldImportEmberMocha = !dep.gt('2.2.0-alpha');
this._emberMochaLibPath = path.dirname(resolve.sync('ember-mocha'));
},

postBuild: function () {
Expand All @@ -63,6 +92,49 @@ module.exports = {
return path.join(__dirname, 'blueprints');
},

treeForVendor: function(tree) {
var emberMochaBuildSupportPath = path.join(this._emberMochaLibPath, '..', 'build-support');

var mochaSetupTree = new Funnel(emberMochaBuildSupportPath, {
files: ['mocha-setup.js'],
destDir: '/ember-mocha'
});

var trees = [
tree,
mochaSetupTree
];

if (this._shouldImportEmberMocha) {
// support for Ember CLI < 2.2.0-beta.1
var depTree = new MergeTrees(this._getDependencyTrees());

var transpiled = new BabelTranspiler(depTree, {
loose: true,
moduleIds: true,
modules: 'amdStrict'
});

var concattedTree = new Concat(transpiled, {
inputFiles: ['**/*.js'],
outputFile: '/ember-mocha/ember-mocha.js',
annotation: 'Concat: Ember Mocha'
});


trees.push(concattedTree);
}

return new MergeTrees(trees, {
annotation: 'ember-cli-mocha: treeForVendor'
});
},

treeForAddonTestSupport: function() {
// for Ember CLI >= 2.2.0-beta.1
return new MergeTrees(this._getDependencyTrees());
},

included: function included(app, parentAddon) {
var target = (parentAddon || app);
this._super.included.call(this, target);
Expand All @@ -74,34 +146,23 @@ module.exports = {
app.bowerDirectory + '/mocha/mocha.js',
app.bowerDirectory + '/mocha/mocha.css',
app.bowerDirectory + '/chai/chai.js',
app.bowerDirectory + '/ember-mocha/mocha-setup.js',
'vendor/ember-mocha/mocha-setup.js',
app.bowerDirectory + '/ember-mocha-adapter/adapter.js',
'vendor/ember-cli-mocha/test-loader.js'
];

if (this._shouldImportEmberMocha) {
// support for Ember CLI < 2.2.0-beta.1
fileAssets.push('vendor/ember-mocha/ember-mocha.js');
}

var addonOptions = app.options['ember-cli-mocha'] || {};
if (addonOptions && !addonOptions.disableContainerStyles) {
fileAssets.push('vendor/ember-cli-mocha/test-container-styles.css');
}

app.import(app.bowerDirectory + '/ember-mocha/ember-mocha.amd.js', {
type: 'test',
exports: {
'ember-mocha': [
'describeModule',
'describeComponent',
'describeModel',
'it',
'setResolver'
]
}
});

app.import(app.bowerDirectory + '/ember-cli-shims/test-shims.js', {
type: 'test',
exports: {
'qunit': ['default']
}
type: 'test'
});

fileAssets.forEach(function(file){
Expand Down
11 changes: 9 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,15 @@
},
"homepage": "https://github.com/switchfly/ember-cli-mocha",
"dependencies": {
"broccoli-babel-transpiler": "^5.5.0",
"broccoli-concat": "^2.1.0",
"broccoli-funnel": "^1.0.1",
"broccoli-jshint": "^1.1.0",
"exists-sync": "0.0.3"
"broccoli-merge-trees": "^1.1.1",
"ember-cli-version-checker": "^1.1.6",
"ember-mocha": "^0.8.11",
"exists-sync": "0.0.3",
"resolve": "^1.1.7"
},
"bundledDependencies": [ ]
"bundledDependencies": []
}

0 comments on commit 362d030

Please sign in to comment.