/*global describe, it, beforeEach */ "use strict"; var gSpawn = require("../"), Stream = require("stream"), gutil = require("gulp-util"), assert = require("assert"), es = require("event-stream"); describe("gulp-spawn", function () { describe("in buffer mode", function () { it("should work", function (done) { var stream = gSpawn({ cmd: "cat" }); var inputStream = new Stream.PassThrough({objectMode: true}), outputStream = new Stream.PassThrough({objectMode: true}), n = 0; var fakeFile = new gutil.File({ cwd: "./", base: "test", path: "test/file.js", contents: new Buffer("plipplap") }); var fakeFile2 = new gutil.File({ cwd: "./", base: "test", path: "test/file2.js", contents: new Buffer("plipplup") }); inputStream .pipe(stream) .pipe(outputStream); outputStream.on("readable", function () { var newFile; while (newFile = outputStream.read()) { assert(newFile); assert.equal(newFile.cwd, "./"); assert.equal(newFile.base, "test"); assert(newFile.contents instanceof Buffer); if (++n === 1) { assert.equal(newFile.path, "test/file.js"); assert.equal(newFile.contents.toString(), "plipplap"); } else { assert.equal(newFile.path, "test/file2.js"); assert.equal(newFile.contents.toString(), "plipplup"); } } }); outputStream.on("end", function () { assert.equal(n, 2); done(); }); inputStream.write(fakeFile); inputStream.write(fakeFile2); inputStream.end(); }); }); });