@@ -11,6 +11,10 @@ var del = require('del');
11
11
var lazypipe = require ( 'lazypipe' ) ;
12
12
var runSequence = require ( 'run-sequence' ) ;
13
13
var merge = require ( 'merge-stream' ) ;
14
+ const exec = require ( 'child_process' ) . exec ;
15
+ const _ = require ( 'lodash' ) ;
16
+ const gutil = require ( 'gulp-util' ) ;
17
+ const shell = require ( 'shelljs' ) ;
14
18
15
19
var watching = false ;
16
20
@@ -114,6 +118,47 @@ gulp.task('updateFixtures:deps', () => {
114
118
return updateFixtures ( 'deps' ) ;
115
119
} ) ;
116
120
121
+ function execAsync ( cmd , opt ) {
122
+ return new Promise ( ( resolve , reject ) => {
123
+ exec ( cmd , opt , ( err , stdout , stderr ) => {
124
+ if ( err ) {
125
+ console . log ( `stderr: ${ stderr } ` ) ;
126
+ return reject ( err ) ;
127
+ }
128
+
129
+ return resolve ( stdout ) ;
130
+ } )
131
+ } ) ;
132
+ }
133
+
134
+ gulp . task ( 'installFixtures' , function ( ) {
135
+ gutil . log ( 'installing npm & bower dependencies for generated app' ) ;
136
+ let progress = setInterval ( ( ) => {
137
+ process . stdout . write ( '.' ) ;
138
+ } , 1 * 1000 ) ;
139
+ shell . cd ( 'test/fixtures' ) ;
140
+
141
+ return Promise . all ( [
142
+ execAsync ( 'npm install --quiet' , { cwd : '../fixtures' } ) ,
143
+ execAsync ( 'bower install' , { cwd : '../fixtures' } )
144
+ ] ) . then ( ( ) => {
145
+ process . stdout . write ( '\n' ) ;
146
+ if ( ! process . env . SAUCE_USERNAME ) {
147
+ gutil . log ( 'running npm run-script update-webdriver' ) ;
148
+ return execAsync ( 'npm run-script update-webdriver' ) . then ( ( ) => {
149
+ clearInterval ( progress ) ;
150
+ process . stdout . write ( '\n' ) ;
151
+ shell . cd ( '../../' ) ;
152
+ } ) ;
153
+ } else {
154
+ clearInterval ( progress ) ;
155
+ process . stdout . write ( '\n' ) ;
156
+ shell . cd ( '../../' ) ;
157
+ return Promise . resolve ( ) ;
158
+ }
159
+ } ) ;
160
+ } ) ;
161
+
117
162
gulp . task ( 'test' , ( ) => {
118
163
return gulp . src ( 'test/*.test.js' )
119
164
. pipe ( mocha ( ) )
0 commit comments