aboutsummaryrefslogtreecommitdiff
path: root/node_modules/gulp-stream/test/gulp-stream.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/gulp-stream/test/gulp-stream.js')
-rw-r--r--node_modules/gulp-stream/test/gulp-stream.js105
1 files changed, 105 insertions, 0 deletions
diff --git a/node_modules/gulp-stream/test/gulp-stream.js b/node_modules/gulp-stream/test/gulp-stream.js
new file mode 100644
index 000000000..fc38f0ad2
--- /dev/null
+++ b/node_modules/gulp-stream/test/gulp-stream.js
@@ -0,0 +1,105 @@
+var fs = require('fs');
+var File = require('vinyl');
+var buffer = require('..');
+var through = require('through2');
+var assert = require('assert');
+var Stream = require('stream');
+
+describe('gulp-buffer', function() {
+
+ describe('with null contents', function() {
+ it('should let null files pass through', function(done) {
+ var b = buffer();
+ var n = 0;
+ var _transform = function(file, enc, callback) {
+ assert.equal(file.contents, null);
+ n++;
+ callback();
+ }
+ var _flush = function(callback) {
+ assert.equal(n, 1);
+ done();
+ callback();
+ }
+ var t = through.obj(_transform, _flush);
+ b.pipe(t);
+ b.end(new File({
+ contents: null
+ }));
+ });
+ });
+
+ describe('with stream contents', function() {
+ it('should let stream files pass through', function(done) {
+ var b = buffer();
+ var n = 0;
+ var c = Readable();
+ var _transform = function(file, enc, callback) {
+ assert.equal(file.contents, c);
+ n++;
+ callback();
+ }
+ var _flush = function(callback) {
+ assert.equal(n, 1);
+ done();
+ callback();
+ }
+ var t = through.obj(_transform, _flush);
+ b.pipe(t);
+ b.end(new File({
+ contents: c
+ }));
+ });
+ });
+
+ describe('with buffer contents', function() {
+ it('should transform stream to buffer', function(done) {
+ var b = buffer();
+ var n = 0;
+ var c = new Buffer("data");
+ var d = Writable("data", done);
+ var _transform = function(file, enc, callback) {
+ assert.equal(file.isStream(), true);
+ file.contents.pipe(d);
+ n++;
+ callback();
+ }
+ var _flush = function(callback) {
+ assert.equal(n, 1);
+ callback();
+ }
+ var t = through.obj(_transform, _flush);
+ b.pipe(t);
+ b.end(new File({
+ contents: c
+ }));
+ });
+ });
+
+
+});
+
+function Readable(cb){
+ var readable = new Stream.Readable();
+ readable._read = function() {
+ this.push(new Buffer('data'));
+ this.push(null); // no more data
+ };
+ if (cb) readable.on('end', cb);
+ return readable;
+}
+
+
+function Writable(check, cb) {
+ var writable = new Stream.Writable();
+ var chunks = [];
+ writable._write = function(chunk, _, done){
+ chunks.push(chunk);
+ done();
+ };
+ if (cb) writable.on('finish', function() {
+ assert.equal(check, Buffer.concat(chunks).toString());
+ cb();
+ });
+ return writable;
+}