@@ -14,6 +14,8 @@ var vinyl = require('vinyl-fs');
14
14
var jshint = require ( 'gulp-jshint' ) ;
15
15
var spawn = require ( 'child_process' ) . spawn ;
16
16
var once = require ( 'once' ) ;
17
+ var aOnce = require ( 'async-once' ) ;
18
+ var del = require ( 'del' ) ;
17
19
var promisedDel = require ( 'promised-del' ) ;
18
20
var through = require ( 'through2' ) ;
19
21
@@ -83,6 +85,28 @@ describe('integrations', function() {
83
85
} ) ;
84
86
} ) ;
85
87
88
+ it ( 'should run dependencies once' , function ( done ) {
89
+ var count = 0 ;
90
+
91
+ taker . task ( 'clean' , aOnce ( function ( cb ) {
92
+ console . log ( cb ( ) ) ;
93
+ count ++ ;
94
+ del ( [ './fixtures/some-build.txt' ] , { cwd : __dirname } , cb ) ;
95
+ } ) ) ;
96
+
97
+ taker . task ( 'build-this' , taker . series ( [ 'clean' , function ( done ) { done ( ) ; } ] ) ) ;
98
+ taker . task ( 'build-that' , taker . series ( [ 'clean' , function ( done ) { done ( ) ; } ] ) ) ;
99
+ taker . task ( 'build' , taker . series ( [
100
+ 'clean' ,
101
+ taker . parallel ( [ 'build-this' , 'build-that' ] )
102
+ ] ) ) ;
103
+
104
+ taker . parallel ( 'build' ) ( function ( err ) {
105
+ expect ( count ) . to . equal ( 1 ) ;
106
+ done ( err ) ;
107
+ } ) ;
108
+ } ) ;
109
+
86
110
it ( 'can use lastRun with vinyl.src `since` option' , function ( done ) {
87
111
taker . task ( 'test' , function ( ) {
88
112
return vinyl . src ( './fixtures/test.js' , { cwd : __dirname } )
0 commit comments