1
+ 'use strict' ;
2
+
3
+ var chalk = require ( 'chalk' ) ;
4
+ var Command = require ( 'ember-cli/lib/models/command' ) ;
5
+ var Promise = require ( 'ember-cli/lib/ext/promise' ) ;
6
+ var Project = require ( 'ember-cli/lib/models/project' ) ;
7
+ var SilentError = require ( 'silent-error' ) ;
8
+ var validProjectName = require ( 'ember-cli/lib/utilities/valid-project-name' ) ;
9
+ var normalizeBlueprint = require ( 'ember-cli/lib/utilities/normalize-blueprint-option' ) ;
10
+
11
+ var TestCommand = require ( 'ember-cli/lib/commands/test' ) ;
12
+ var win = require ( 'ember-cli/lib/utilities/windows-admin' ) ;
13
+ var path = require ( 'path' ) ;
14
+
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
+ }
21
+
22
+ module . exports = TestCommand . extend ( {
23
+
24
+ init : function ( ) {
25
+ if ( ! this . karmaServer ) {
26
+ var karma = requireDependency ( this . project . root , 'karma' ) ;
27
+ var karmaConfig = path . join ( this . project . root , 'karma.conf' ) ;
28
+ this . karmaServer = new karma . Server ( { configFile : karmaConfig } ) ;
29
+ }
30
+ } ,
31
+
32
+ run : function ( commandOptions , rawArgs ) {
33
+ var BuildTask = this . tasks . Build ;
34
+ var buildTask = new BuildTask ( {
35
+ ui : this . ui ,
36
+ analytics : this . analytics ,
37
+ project : this . project
38
+ } ) ;
39
+
40
+ var buildCommandOptions = {
41
+ environment : 'development' ,
42
+ outputPath : 'dist/' ,
43
+ watch : false
44
+ } ;
45
+
46
+ var self = this ;
47
+ return win . checkWindowsElevation ( this . ui )
48
+ . then ( function ( ) {
49
+ return buildTask . run ( buildCommandOptions ) ;
50
+ } )
51
+ . then ( function ( ) {
52
+ return new Promise ( function ( ) {
53
+ return self . karmaServer . start ( ) ;
54
+ } ) ;
55
+ } ) ;
56
+ }
57
+ } ) ;
58
+
59
+ module . exports . overrideCore = true ;
0 commit comments