Skip to content

Commit c7f895e

Browse files
committed
Tests that validate gulp-if works for 10, 100, 200, and 400 files. Does this solve #43?
1 parent 3279207 commit c7f895e

File tree

5 files changed

+112
-1
lines changed

5 files changed

+112
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ components
77
*.orig
88
.idea
99
temp.txt*
10+
fixture

.jshintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
node_modules/**
2+
fixture/**

package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,15 @@
1818
"through2": "^2.0.0"
1919
},
2020
"devDependencies": {
21+
"end-of-stream": "^1.1.0",
22+
"graceful-fs": "^4.1.2",
2123
"jshint": "^2.8.0",
24+
"mkdirp": "^0.5.1",
2225
"mocha": "^2.3.3",
23-
"should": "^7.1.0"
26+
"rimraf": "^2.4.3",
27+
"should": "^7.1.0",
28+
"stream-exhaust": "^1.0.1",
29+
"vinyl-fs": "^2.1.1"
2430
},
2531
"scripts": {
2632
"test": "mocha && jshint ."

test/load.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*global describe:false */
2+
3+
'use strict';
4+
5+
var loadTests = require('./loadTests');
6+
7+
describe('gulp-if', function() {
8+
describe('load,', function() {
9+
10+
loadTests(10, './fixture/ten');
11+
loadTests(100, './fixture/onehundred');
12+
loadTests(200, './fixture/twohundred');
13+
loadTests(400, './fixture/fourhundred');
14+
15+
});
16+
});

test/loadTests.js

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*global it:false, before:false */
2+
3+
'use strict';
4+
5+
var vinylFs = require('vinyl-fs');
6+
var fs = require('graceful-fs');
7+
var mkdirp = require('mkdirp');
8+
var rimraf = require('rimraf');
9+
var through = require('through2');
10+
var eos = require('end-of-stream');
11+
var exhaust = require('stream-exhaust');
12+
require('should');
13+
14+
var gulpif = require('../');
15+
16+
module.exports = function (fileCount, fixturePath) {
17+
18+
before(function (done) {
19+
var i;
20+
rimraf(fixturePath, function (err) {
21+
if (err) {
22+
return done(err);
23+
}
24+
mkdirp(fixturePath, function (err) {
25+
if (err) {
26+
return done(err);
27+
}
28+
for (i = 0; i < fileCount; i++) {
29+
fs.writeFileSync(fixturePath+'/file'+i+'.js', 'this is file '+i);
30+
}
31+
done();
32+
});
33+
});
34+
});
35+
36+
it('should get '+fileCount+' files through a function condition', function(done) {
37+
38+
// Arrange
39+
40+
var trueFunc = function (/*file*/) {
41+
return true;
42+
};
43+
44+
var preArr = [];
45+
var ifArr = [];
46+
var postArr = [];
47+
48+
var grabPre = function (file, enc, cb) {
49+
preArr.push(file.relative);
50+
this.push(file);
51+
cb();
52+
};
53+
var grabIf = function (file, enc, cb) {
54+
ifArr.push(file.relative);
55+
this.push(file);
56+
cb();
57+
};
58+
var grabPost = function (file, enc, cb) {
59+
postArr.push(file.relative);
60+
this.push(file);
61+
cb();
62+
};
63+
64+
// Act
65+
var s = vinylFs.src(fixturePath+'/*.js')
66+
.pipe(through.obj(grabPre))
67+
.pipe(gulpif(trueFunc, through.obj(grabIf)))
68+
//.pipe(ternaryStream(trueFunc, through.obj(grabIf)))
69+
.pipe(through.obj(grabPost));
70+
71+
eos(exhaust(s), function (err) {
72+
// Assert
73+
74+
if (err) {
75+
false.should.equal(err);
76+
return done();
77+
}
78+
79+
preArr.length.should.equal(fileCount);
80+
ifArr.length.should.equal(fileCount);
81+
postArr.length.should.equal(fileCount);
82+
83+
done();
84+
});
85+
});
86+
87+
};

0 commit comments

Comments
 (0)