11var autoprefixer = require ( 'gulp-autoprefixer' ) ;
22var format = require ( 'gulp-clang-format' ) ;
3+ var fork = require ( 'child_process' ) . fork ;
34var gulp = require ( 'gulp' ) ;
45var gulpPlugins = require ( 'gulp-load-plugins' ) ( ) ;
56var sass = require ( 'gulp-sass' ) ;
@@ -8,6 +9,7 @@ var runSequence = require('run-sequence');
89var madge = require ( 'madge' ) ;
910var merge = require ( 'merge' ) ;
1011var path = require ( 'path' ) ;
12+ var Q = require ( 'q' ) ;
1113
1214var gulpTraceur = require ( './tools/transpiler/gulp-traceur' ) ;
1315var clean = require ( './tools/build/clean' ) ;
@@ -465,27 +467,38 @@ gulp.task('test.unit.cjs/ci', function () {
465467gulp . task ( 'test.unit.cjs' , [ 'build.js.cjs' ] , function ( ) {
466468 //Run tests once
467469 runSequence ( 'test.unit.cjs/ci' , function ( ) { } ) ;
470+ } ) ;
468471
469- //Watcher to transpile file changed
470- gulp . watch ( CONFIG . transpile . src . js . concat ( [ 'modules/**/*.cjs' ] ) , function ( event ) {
471- var relPath = path . relative ( __dirname , event . path ) . replace ( / \\ / g, "/" ) ;
472- gulp . src ( relPath )
473- . pipe ( gulpPlugins . rename ( { extname : '.' + 'js' } ) )
474- . pipe ( gulpTraceur ( CONFIG . transpile . options . js . cjs , file2moduleName ) )
475- . pipe ( transformCJSTests ( ) )
476- . pipe ( gulp . dest ( CONFIG . dest . js . cjs + path . dirname ( relPath . replace ( "modules" , "" ) ) ) ) ;
472+ function runNodeJasmineTests ( ) {
473+ var doneDeferred = Q . defer ( ) ;
474+ var jasmineProcess = fork ( './tools/traceur-jasmine' , [ 'dist/js/cjs/angular2/test/**/*_spec.js' ] , {
475+ stdio : 'inherit'
477476 } ) ;
478- //Watcher to run tests when dist/js/cjs/angular2 is updated by the first watcher (after clearing the node cache)
479- gulp . watch ( CONFIG . dest . js . cjs + '/angular2/**/*.js' , function ( event ) {
480- for ( var id in require . cache ) {
481- if ( id . replace ( / \\ / g, "/" ) . indexOf ( CONFIG . dest . js . cjs ) > - 1 ) {
482- delete require . cache [ id ] ;
483- }
484- }
485- global . assert = undefined ; // https://github.com/angular/angular/issues/1340
486- runSequence ( 'test.unit.cjs/ci' , function ( ) { } ) ;
477+
478+ jasmineProcess . on ( 'close' , function ( code ) {
479+ doneDeferred . resolve ( ) ;
487480 } ) ;
488481
482+ return doneDeferred . promise ;
483+ }
484+
485+ gulp . task ( 'test.unit.cjs/ci' , runNodeJasmineTests ) ;
486+
487+ gulp . task ( 'test.unit.cjs' , [ 'build.broccoli.tools' ] , function ( done ) {
488+ //Run tests once
489+ var nodeBroccoliBuilder = getBroccoli ( ) . forNodeTree ( ) ;
490+
491+
492+ nodeBroccoliBuilder . doBuild ( ) . then ( function ( ) {
493+ gulp . start ( 'build/linknodemodules.js.cjs' ) ;
494+ return runNodeJasmineTests ( ) ;
495+ } ) . then ( function ( ) {
496+ //Watcher to transpile file changed
497+ gulp . watch ( 'modules/**' , function ( event ) {
498+ console . log ( "fs changes detected" , event ) ;
499+ nodeBroccoliBuilder . doBuild ( ) . then ( runNodeJasmineTests ) ;
500+ } ) ;
501+ } ) ;
489502} ) ;
490503
491504// ------------------
@@ -621,7 +634,7 @@ gulp.task('broccoli.js.cjs', ['build.broccoli.tools'], function() {
621634gulp . task ( 'build.js.cjs' , function ( done ) {
622635 runSequence (
623636 'broccoli.js.cjs' ,
624- [ 'build/linknodemodules.js.cjs' ] ,
637+ 'build/linknodemodules.js.cjs' ,
625638 done
626639 ) ;
627640} ) ;
0 commit comments