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