add .forEach .atEnd .forFirst

This commit is contained in:
2016-10-19 07:36:32 +02:00
parent a2b37a066d
commit 1d8de68a66
6 changed files with 97 additions and 70 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,63 +1,64 @@
import 'typings-test'
let gulp = require('gulp');
let gulp = require('gulp')
import gulpFunction from '../dist/index'
let beautylog = require('beautylog')
import * as beautylog from 'beautylog'
let Q = require('q')
let myFunction = function () {
let done = Q.defer()
beautylog.log('Function executed');
done.resolve();
return done.promise;
};
beautylog.log('Function executed')
done.resolve()
return done.promise
}
let myFunction2 = function () {
let done = Q.defer();
beautylog.ok('Function2 executed');
done.resolve();
return done.promise;
};
let done = Q.defer()
beautylog.ok('Function2 executed')
done.resolve()
return done.promise
}
let myFunction3 = function () {
let done = Q.defer();
beautylog.success('Function3 executed');
done.resolve();
return done.promise;
};
let done = Q.defer()
beautylog.success('Function3 executed')
done.resolve()
return done.promise
}
let beforeFunction = function () {
let done = Q.defer();
beautylog.success('beforeFunction executed');
done.resolve();
return done.promise;
};
let done = Q.defer()
beautylog.success('beforeFunction executed')
done.resolve()
return done.promise
}
let middleFunctionRun = false;
let middleFunctionRun = false
let middleFunction = function () {
let done = Q.defer();
beautylog.success('middleFunction executed');
let done = Q.defer()
beautylog.success('middleFunction executed')
setTimeout(function(){
beautylog.log('timeout fired');
middleFunctionRun = true;
done.resolve();
}, 500);
return done.promise;
};
beautylog.log('timeout fired')
middleFunctionRun = true
done.resolve()
}, 500)
return done.promise
}
let afterFunction = function () {
let done = Q.defer();
beautylog.success('afterFunction executed');
done.resolve();
return done.promise;
};
let done = Q.defer()
beautylog.success('afterFunction executed')
done.resolve()
return done.promise
}
let timeoutFunction = function(){
let done = Q.defer();
let done = Q.defer()
setTimeout(function(){
beautylog.log('largeTimeout fired');
done.resolve();
},2000);
return done.promise;
};
beautylog.log('largeTimeout fired')
done.resolve()
},2000)
return done.promise
}
@ -65,54 +66,54 @@ describe('gulpFunction',function(){
it('should run through smoothly with ' + "'forEach'",function(done){
gulp.src('./test/*.md')
.pipe(gulpFunction(myFunction,'forEach'))
.pipe(gulp.dest('./test/result/'));
.pipe(gulp.dest('./test/result/'))
gulp.src('./test/*.md')
.pipe(gulpFunction([myFunction2,myFunction3],'forEach'))
.pipe(gulp.dest('./test/result/'))
.pipe(gulpFunction(done,'atEnd'));
.pipe(gulpFunction(done,'atEnd'))
});
})
it('should run through smoothly with ' + "'atEnd'",function(done){
gulp.src('./test/*.md')
.pipe(gulpFunction(myFunction,'atEnd'))
.pipe(gulp.dest('./test/result/'));
.pipe(gulp.dest('./test/result/'))
gulp.src('./test/*.md')
.pipe(gulpFunction([myFunction2,myFunction3],'atEnd'))
.pipe(gulp.dest('./test/result/'))
.pipe(gulpFunction(done,'atEnd'));
});
.pipe(gulpFunction(done,'atEnd'))
})
it('should run through smoothly once with ' + "'atFirst'",function(done){
gulp.src('./test/*.md')
.pipe(gulpFunction([myFunction2,myFunction3],'forFirst'))
.pipe(gulp.dest('./test/result/'))
.pipe(gulpFunction(done,'atEnd'));
});
.pipe(gulpFunction(done,'atEnd'))
})
it('should run in order',function(done){
this.timeout(5000);
this.timeout(5000)
let stream = gulp.src('./test/*.md')
.pipe(gulpFunction([beforeFunction,middleFunction,middleFunction],'atEnd'))
.pipe(gulpFunction(function(){
beautylog.log('stream progressed');
let done2 = Q.defer();
done2.resolve();
return done2.promise;
beautylog.log('stream progressed')
let done2 = Q.defer()
done2.resolve()
return done2.promise
},'forEach'))
.pipe(gulpFunction(function(){
beautylog.log('nextStep');
beautylog.log('nextStep')
}))
.pipe(gulpFunction(afterFunction,'atEnd'))
.pipe(gulpFunction(timeoutFunction,'atEnd'));
.pipe(gulpFunction(timeoutFunction,'atEnd'))
stream.on('finish',function(){
beautylog.info('stream finished');
done();
});
});
});
beautylog.info('stream finished')
done()
})
})
})