Skip to content

Commit de16404

Browse files
Broccofilipesilva
authored andcommitted
chore(refactor): Refactor test command to use test task
Close angular#216
1 parent 52b1b21 commit de16404

File tree

2 files changed

+40
-19
lines changed

2 files changed

+40
-19
lines changed

addon/ng2/commands/test.js

+7-19
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,10 @@ var validProjectName = require('ember-cli/lib/utilities/valid-project-name');
99
var normalizeBlueprint = require('ember-cli/lib/utilities/normalize-blueprint-option');
1010

1111
var TestCommand = require('ember-cli/lib/commands/test');
12+
var TestTask = require('../tasks/test');
1213
var win = require('ember-cli/lib/utilities/windows-admin');
1314
var path = require('path');
1415

15-
// require dependencies within the target project
16-
function requireDependency (root, moduleName) {
17-
var packageJson = require(path.join(root, 'node_modules', moduleName, 'package.json'));
18-
var main = path.normalize(packageJson.main);
19-
return require(path.join(root, 'node_modules', moduleName, main));
20-
}
2116

2217
module.exports = TestCommand.extend({
2318
availableOptions: [
@@ -37,6 +32,11 @@ module.exports = TestCommand.extend({
3732
analytics: this.analytics,
3833
project: this.project
3934
});
35+
var testTask = new TestTask({
36+
ui: this.ui,
37+
analytics: this.analytics,
38+
project: this.project
39+
});
4040

4141
var buildCommandOptions = {
4242
environment: 'development',
@@ -51,19 +51,7 @@ module.exports = TestCommand.extend({
5151
return buildTask.run(buildCommandOptions);
5252
})
5353
.then(function(){
54-
return new Promise(function(resolve, reject){
55-
var karma = requireDependency(projectRoot, 'karma');
56-
var karmaConfig = path.join(projectRoot, 'karma.conf');
57-
58-
// Convert browsers from a string to an array
59-
if (commandOptions.browsers){
60-
commandOptions.browsers = commandOptions.browsers.split(',');
61-
}
62-
commandOptions.configFile = karmaConfig;
63-
var karmaServer = new karma.Server(commandOptions, resolve);
64-
65-
karmaServer.start();
66-
});
54+
return testTask.run(commandOptions);
6755
});
6856
}
6957
});

addon/ng2/tasks/test.js

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/* jshint node: true */
2+
'use strict';
3+
4+
var Promise = require('ember-cli/lib/ext/promise');
5+
var Task = require('ember-cli/lib/models/task');
6+
var path = require('path');
7+
8+
// require dependencies within the target project
9+
function requireDependency(root, moduleName) {
10+
var packageJson = require(path.join(root, 'node_modules', moduleName, 'package.json'));
11+
var main = path.normalize(packageJson.main);
12+
return require(path.join(root, 'node_modules', moduleName, main));
13+
}
14+
15+
module.exports = Task.extend({
16+
17+
run: function (options) {
18+
var projectRoot = this.project.root;
19+
return new Promise(function (resolve, reject) {
20+
var karma = requireDependency(projectRoot, 'karma');
21+
var karmaConfig = path.join(projectRoot, 'karma.conf');
22+
23+
// Convert browsers from a string to an array
24+
if (options.browsers) {
25+
options.browsers = options.browsers.split(',');
26+
}
27+
options.configFile = karmaConfig;
28+
var karmaServer = new karma.Server(options, resolve);
29+
30+
karmaServer.start();
31+
});
32+
}
33+
});

0 commit comments

Comments
 (0)